Browse Source

【fix】【内容编辑】文字块悬浮菜单,加粗 和 斜体 需要有选中状态

tangchao 8 months ago
parent
commit
7419178c62

+ 8 - 0
PDF Office/PDF Master/Class/PDFTools/EditPDF/Controller/KMAlignmentController.swift

@@ -34,10 +34,15 @@ class KMAlignmentController: NSViewController {
         }
     }
     
+    deinit {
+        KMPrint("KMAlignmentController deinit.")
+    }
+    
     convenience init(withIsHor isHor: Bool, areaCount: Int) {
         self.init(nibName: "KMAlignmentController", bundle: nil)
         
         self.isHor_ = isHor
+        self.areaCount_ = areaCount
     }
     
     override func viewDidLoad() {
@@ -95,13 +100,16 @@ class KMAlignmentController: NSViewController {
         if self.isHor {
             // KMImageNameEditPDFImage21
             self.vc4_?.image = NSImage(named: "KMImageNameEditPDFImage21_1")!
+            self.vc4_?._image_disabled = NSImage(named: "KMImageNameEditPDFImage21")!
         } else {
             // KMImageNameEditPDFImage20
             self.vc4_?.image = NSImage(named: "KMImageNameEditPDFImage20_1")!
+            self.vc4_?._image_disabled = NSImage(named: "KMImageNameEditPDFImage20")!
         }
         self.vc4_?.tag = 3
         
         self.vc4_?.state = self.areaCount > 2 ? .Norm : .Disabled
+        self.vc4_?.button.isEnabled = self.areaCount > 2
     }
     
     @objc private func _itemClick(_ sender: NSButton) {

+ 21 - 0
PDF Office/PDF Master/Class/PDFTools/EditPDF/Controller/KMEditPDFPopToolBarController.swift

@@ -59,6 +59,7 @@ import Cocoa
 class KMEditPDFToolbarModel: NSObject {
     var itemKey: KMEditPDFToolbarItemKey = .none
     var isEnabled = true
+    var isSelected = false
     
     var fontName: String?
     var state: NSControl.StateValue = .mixed
@@ -157,6 +158,15 @@ class KMEditPDFPopToolBarController: NSViewController {
             let key = self.itemKeys[idx]
             self.itemClick?(key, nil)
             
+            let itemView = (self.toolbarView?.itemViews.safe_element(for: idx) as? KMEditPDFToolbarItemView)
+            let viewC = (itemView?.obj as? KMDesignButton)
+            let state = viewC?.state ?? .None
+            if state == .Act {
+                viewC?.state = .Norm
+            } else {
+                viewC?.state = .Act
+            }
+            
             self._trackEvent(key: key, style: self._fetchStyle())
         }
     }
@@ -517,9 +527,20 @@ extension KMEditPDFPopToolBarController: KMEditPDFToolbarViewDelegate {
             colorView.popToolTip = NSLocalizedString("Bold font", comment: "")
 //            viewC.button.keyEquivalent = "b"
 //            viewC.button.keyEquivalentModifierMask = [.control]
+            viewC.initDefaultValue()
+            viewC.borderWidth = 0
+            viewC.borderWidth_hov = 0
+            viewC.borderWidth_act = 0
+            viewC.state = model.isSelected ? .Act : .Norm
         } else if itemKey == .fontItalic {
             viewC.image = NSImage(named: "KMImageNameEditPDFFontItalic")!
             colorView.popToolTip = NSLocalizedString("Italic font", comment: "")
+            
+            viewC.initDefaultValue()
+            viewC.borderWidth = 0
+            viewC.borderWidth_hov = 0
+            viewC.borderWidth_act = 0
+            viewC.state = model.isSelected ? .Act : .Norm
         } else if itemKey == .textAlignment {
             viewC.image = NSImage(named: "KMImageNameEditPDFAlignCenterSelect")!
             colorView.popToolTip = NSLocalizedString("Center text", comment: "")

+ 1 - 1
PDF Office/PDF Master/Class/PDFTools/EditPDF/Tools/KMEditPDfHanddler.swift

@@ -1292,7 +1292,7 @@ extension KMEditPDfHanddler {
             }
             
             var oldBounds : [String] = []
-            for i in 0 ... resultAreasArray.count-1 {
+            for i in 0 ..< resultAreasArray.count {
                 let area : CPDFEditArea = resultAreasArray[i] as! CPDFEditArea
                 oldBounds.append(NSStringFromRect(area.bounds))
                 self.listView?.setBoundsEditArea(area, withBounds: NSRectFromString(newBoundsArray[i]))

+ 3 - 0
PDF Office/PDF Master/Class/PDFTools/EditPDF/Window/KMEditPDFPopToolBarWindow.swift

@@ -91,6 +91,9 @@ import Cocoa
                             model.isEnabled = self.model.editAreasFontSizeIsEqual()
                         } else if key == .fontBold {
 //                            model.isEnabled = self.model.editAreasFontBoldIsEqual()
+                            if self.model.editAreasFontBoldIsEqual() {
+                                model.isSelected = self.model.fontBolds.first ?? false
+                            }
                         } else if key == .fontItalic {
 //                            model.isEnabled = self.model.editAreasFontItalicIsEqual()
                         } else if key == .textAlignment {