Просмотр исходного кода

【注释】未登录前提下,点击限制工具,可高亮多个工具(已修复)

tangchao 1 год назад
Родитель
Сommit
86d21f638b

+ 31 - 12
PDF Office/PDF Master/Class/PDFWindowController/Toolbar/KMToolbarController.swift

@@ -7,6 +7,21 @@
 
 import Cocoa
 
+extension CAnnotationType {
+    func isAdvanced() -> Bool {
+        if (self == .link || self == .stamp || self == .signSignature) {
+            return true
+        }
+        if (self == .signText || self == .signTure || self == .signFalse || self == .signCircle || self == .signLine || self == .signDot || self == .signDate) {
+            return true
+        }
+        if (self == .addText || self == .addImage) {
+            return true
+        }
+        return false
+    }
+}
+
 @objc protocol KMToolbarControllerDelegate {
     @objc optional func toolbarController(_ viewController: KMToolbarController, heightOffsetChange heightOffset: Float)
     @objc optional func changeAnnotationModeAction(item:KMToolbarClickButton)
@@ -459,19 +474,23 @@ class KMToolbarController: NSViewController {
 
 extension KMToolbarController: KMToolbarViewControllerDelegate {
     func changeAnnotationModeAction(item: KMToolbarClickButton) {
-        Task { @MainActor in
-            let type = CAnnotationType(rawValue: item.tag) ?? CAnnotationType.unkown
-            if (type == .link || type == .stamp || type == .signSignature) {
-                if await (KMLightMemberManager.manager.canUseAdvanced() == false) {
-                    let _ = KMComparativeTableViewController.show(window: self.view.window!)
-                    return
-                }
+        let type = CAnnotationType(rawValue: item.tag) ?? CAnnotationType.unkown
+        if (type.isAdvanced() == false) {
+            if self.toolbarType == .Magnify || self.toolbarType == .Move || self.toolbarType == .Select || self.toolbarType == .SelectZoom  {
+                self.toolbarType = .Annatiton
             }
-            if (type == .signText || type == .signTure || type == .signFalse || type == .signCircle || type == .signLine || type == .signDot || type == .signDate) {
-                if await (KMLightMemberManager.manager.canUseAdvanced() == false) {
-                    let _ = KMComparativeTableViewController.show(window: self.view.window!)
-                    return
-                }
+            
+            self.delegate?.changeAnnotationModeAction?(item: item)
+            return
+        }
+        
+        // 高级功能
+        Task { @MainActor in
+            if await (KMLightMemberManager.manager.canUseAdvanced() == false) {
+                let _ = KMComparativeTableViewController.show(window: self.view.window!)
+                let boxItem = item.clickObject as? KMToolBoxItem
+                boxItem?.isSelected = false
+                return
             }
             
             //文字编辑 图片编辑 选中按钮逻辑(只能同时选中其中一个)