Browse Source

【工具栏自定义】新增右键菜单

tangchao 9 months ago
parent
commit
ec9b998bcd

+ 5 - 0
PDF Office/PDF Master/Class/PDFWindowController/Toolbar/KMToolbarController.swift

@@ -181,6 +181,9 @@ class KMToolbarController: NSViewController {
         toolbarType = .None
         mainToolBarView?.toolbarType = .Main
         mainToolBarView?.reloadateToolbar()
+        mainToolBarView?.toolbar?.allowsUserCustomization = true
+        
+        self.findSearchView.isHidden = true
         
         NotificationCenter.default.addObserver(self, selector: #selector(selectedShapAnnotationChangeNotification(_:)), name: NSNotification.Name.init(rawValue: "KMSelectedShapAnnotationChangeNotification"), object: nil)
         NotificationCenter.default.addObserver(self, selector: #selector(PDFChangedNotification(_:)), name: NSNotification.Name.init(rawValue: "PDFChangedNotification"), object: nil)
@@ -587,6 +590,7 @@ class KMToolbarController: NSViewController {
 //MARK: Find Search
 extension KMToolbarController {
     func showFindBar() {
+        self.findSearchView.isHidden = false
         let height: Float = self.fetchHeight(type: _toolbarType)
         self.delegate?.toolbarController?(self, heightOffsetChange: height, animated: false)
         
@@ -623,6 +627,7 @@ extension KMToolbarController {
     }
     
     func exitFindBar() {
+        self.findSearchView.isHidden = true
         let height: Float = self.fetchHeight(type: _toolbarType, isShow: false)
         self.delegate?.toolbarController?(self, heightOffsetChange: height, animated: false)
     }

+ 20 - 3
PDF Office/PDF Master/Class/PDFWindowController/Toolbar/KMToolbarView.swift

@@ -92,6 +92,13 @@ private let KMToolbarItemSpace = 8.0
     private var _centerWidth: CGFloat = 0
     private var _rightWidth: CGFloat = 0
     
+    var allowsUserCustomization = false
+    
+    deinit {
+        Swift.debugPrint("KMToolbarView deinit")
+        NotificationCenter.default.removeObserver(self)
+    }
+    
     convenience init(identifier: String) {
         self.init()
         
@@ -108,13 +115,23 @@ private let KMToolbarItemSpace = 8.0
 //        self.rightView.layer?.backgroundColor = NSColor.green.cgColor
     }
     
-    deinit {
-        Swift.debugPrint("KMToolbarView deinit")
-        NotificationCenter.default.removeObserver(self)
+    override func menu(for event: NSEvent) -> NSMenu? {
+        if self.allowsUserCustomization == false {
+            return super.menu(for: event)
+        }
+        
+        let menu = NSMenu()
+        let item = NSMenuItem(title: NSLocalizedString("Customize Toolbar", comment: ""), action: #selector(_customToolbarItemAction), keyEquivalent: "")
+        menu.addItem(item)
+        return menu
     }
     
     // MARK: - Private Methods
     
+    @objc private func _customToolbarItemAction(_ sender: NSMenuItem?) {
+        
+    }
+    
     private func _addTrackingArea() {
         let trackingArea = NSTrackingArea(rect: self.bounds, options: [.inVisibleRect, .activeInKeyWindow, .mouseMoved], owner: self)
         self.addTrackingArea(trackingArea)