Browse Source

【自定义图章】左侧个人信息弹窗逻辑优化

niehaoyu 8 months ago
parent
commit
79e39f7601

+ 21 - 44
PDF Office/PDF Master/Class/PDFTools/CustomStamp/Views/CustomStampLeftToolbar.swift

@@ -81,15 +81,7 @@ class CustomStampLeftToolbar: NSView, NibLoadable {
             let string = idNames[idx]
             let menuItem = NSMenuItem.init(title: NSLocalizedString(string, comment: ""), action: #selector(idMenuItemClick(_:)), keyEquivalent: "")
             menuItem.tag = 1000 + idx
-            if idx == 0 && KMProfileInfo.shared().fullName.isEmpty == true {
-                menuItem.action = nil
-            } else if idx == 1 && NSFullUserName().isEmpty == true {
-                menuItem.action = nil
-            } else if idx == 2 && KMProfileInfo.shared().email.isEmpty == true {
-                menuItem.action = nil
-            } else if idx == 3 && KMProfileInfo.shared().OrganizeName.isEmpty == true {
-                menuItem.action = nil
-            }
+            menuItem.target = self
             idMenu.addItem(menuItem)
         }
         self.peopleBox?.menu = idMenu
@@ -189,19 +181,6 @@ class CustomStampLeftToolbar: NSView, NibLoadable {
         } else if self.toolbarType == .stamp {
             self.stampBox.fillColor = NSColor(red: 73/255, green: 130/255, blue: 230/255, alpha: 0.2)
         }
-        
-        for menuItem in self.peopleBox.menu?.items ?? [] {
-            menuItem.action = #selector(idMenuItemClick(_:))
-            if menuItem.tag == 1000 && KMProfileInfo.shared().fullName.isEmpty == true {
-                menuItem.action = nil
-            } else if menuItem.tag == 1001 && NSFullUserName().isEmpty == true {
-                menuItem.action = nil
-            } else if menuItem.tag == 1002 && KMProfileInfo.shared().email.isEmpty == true {
-                menuItem.action = nil
-            } else if menuItem.tag == 1003 && KMProfileInfo.shared().OrganizeName.isEmpty == true {
-                menuItem.action = nil
-            }
-        }
     }
     
     //MARK: IBAction
@@ -227,18 +206,12 @@ class CustomStampLeftToolbar: NSView, NibLoadable {
             
         } else if sender == self.peopleButton {
             self.toolbarType = .idText
+            self.reloadData()
             
-            if self.lastIDItem == nil {
-                for item in self.peopleBox.menu?.items ?? [] {
-                    if item.action != nil {
-                        self.lastIDItem = item
-                        break
-                    }
-                }
-            }
-            if self.lastIDItem != nil {
-                self.idMenuItemClick(self.lastIDItem!)
-            }
+            self.lastIDItem = nil
+            self.peopleBox.menu?.popUp(positioning: self.peopleBox.menu?.item(at: 0), at: CGPoint(x: 0, y: 15), in: sender)
+            
+            return
             
         } else if sender == self.imageButton {
             self.toolbarType = .image
@@ -266,6 +239,10 @@ class CustomStampLeftToolbar: NSView, NibLoadable {
         } else if item.tag == 1003 {
             string = KMProfileInfo.shared().OrganizeName
         }
+        if string.isEmpty {
+            string = " "
+        }
+        self.lastIDItem = item
         
         self.toolbarType = .idText
         self.reloadData()
@@ -308,17 +285,7 @@ extension CustomStampLeftToolbar: NSMenuDelegate {
 
     func menuWillOpen(_ menu: NSMenu) {
         if menu == self.peopleBox.menu {
-            if self.lastIDItem == nil {
-                for item in self.peopleBox.menu?.items ?? [] {
-                    if item.action != nil {
-                        self.lastIDItem = item
-                        break
-                    }
-                }
-            }
-            if self.lastIDItem != nil {
-                self.idMenuItemClick(self.lastIDItem!)
-            }
+            
         } else if menu == self.dateBox.menu {
             if self.lastDateItem == nil {
                 self.lastDateItem = self.dateBox.menu?.items.first
@@ -330,4 +297,14 @@ extension CustomStampLeftToolbar: NSMenuDelegate {
         
         
     }
+    func menuDidClose(_ menu: NSMenu) {
+        if menu == self.peopleBox.menu {
+            if self.lastIDItem == nil {
+                self.toolbarType = .move
+                self.reloadData()
+            }
+        }
+    }
+    
+    
 }