Browse Source

【查找】上一个下一个按钮无效,无法使用快捷键上一个/下一个 -- 修复

lizhe 10 months ago
parent
commit
524f498d3d

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

@@ -61,7 +61,8 @@ extension CAnnotationType {
     
     @objc optional func toolbarViewController(_ viewController:KMToolbarViewController, itemDidClick toolbarItem: KMToolbarItemView)
     @objc optional func toolbarViewController(_ viewController:KMToolbarViewController, searchAction searchString: String, forward: Bool)
-    @objc optional func toolbarViewController(_ viewController:KMToolbarViewController, searchAllAction searchString: String, forward: Bool)
+    @objc optional func toolbarViewController(_ viewController:KMToolbarViewController, findSearchAction searchString: String, forward: Bool)
+    @objc optional func toolbarViewController(_ viewController:KMToolbarViewController, findSearchAllAction searchString: String, forward: Bool)
     @objc optional func toolbarViewController(_ viewController:KMToolbarViewController, menuItemDidClick toolbarItem: KMToolbarItemView, index: Int, info: Any?)
 }
 
@@ -596,28 +597,28 @@ extension KMToolbarController {
         
         self.findSearchView.searchAction = { [weak self] view, searchString, forward in
             if let data = self?.mainToolBarView {
-                self?.toolbarViewController(data, searchAction: searchString, forward: forward)
+                self?.toolbarViewController(data, findSearchAction: searchString, forward: forward)
             }
             return true
         }
         
         self.findSearchView.showAllAction = { [unowned self] view, searchString, forward in
             if let data = self.mainToolBarView {
-                self.toolbarViewController(data, searchAllAction: searchString, forward: forward)
+                self.toolbarViewController(data, findSearchAllAction: searchString, forward: forward)
             }
         }
     }
     
     func showFindString(forward: Bool) {
         if let data = self.mainToolBarView {
-            self.toolbarViewController(data, searchAction: self.findSearchView.findString ?? "", forward: forward)
+            self.toolbarViewController(data, findSearchAction: self.findSearchView.findString ?? "", forward: forward)
         }
         
     }
     
     func showAllAction() {
         if let data = self.mainToolBarView {
-            self.toolbarViewController(data, searchAllAction: self.findSearchView.findString ?? "", forward: true)
+            self.toolbarViewController(data, findSearchAllAction: self.findSearchView.findString ?? "", forward: true)
         }
     }
     
@@ -936,8 +937,12 @@ extension KMToolbarController: KMToolbarViewControllerDelegate {
         self.delegate?.toolbarViewController?(viewController, searchAction: searchString, forward: forward)
     }
     
-    func toolbarViewController(_ viewController: KMToolbarViewController, searchAllAction searchString: String, forward: Bool) {
-        self.delegate?.toolbarViewController?(viewController, searchAllAction: searchString, forward: forward)
+    func toolbarViewController(_ viewController: KMToolbarViewController, findSearchAction searchString: String, forward: Bool) {
+        self.delegate?.toolbarViewController?(viewController, findSearchAction: searchString, forward: forward)
+    }
+    
+    func toolbarViewController(_ viewController: KMToolbarViewController, findSearchAllAction searchString: String, forward: Bool) {
+        self.delegate?.toolbarViewController?(viewController, findSearchAllAction: searchString, forward: forward)
     }
     
     func toolbarViewController(_ viewController: KMToolbarViewController, menuItemDidClick toolbarItem: KMToolbarItemView, index: Int, info: Any?) {

+ 1 - 0
PDF Office/PDF Master/Class/PDFWindowController/Toolbar/KMToolbarViewController.swift

@@ -116,6 +116,7 @@ import Cocoa
     
     @objc optional func toolbarViewController(_ viewController:KMToolbarViewController, itemDidClick toolbarItem: KMToolbarItemView)
     @objc optional func toolbarViewController(_ viewController:KMToolbarViewController, searchAction searchString: String, forward: Bool)
+    @objc optional func toolbarViewController(_ viewController:KMToolbarViewController, findSearchAction searchString: String, forward: Bool)
     @objc optional func toolbarViewController(_ viewController:KMToolbarViewController, menuItemDidClick toolbarItem: KMToolbarItemView, index: Int, info: Any?)
 }
 

+ 23 - 18
PDF Office/PDF Master/Class/PDFWindowController/ViewController/KMMainViewController+Action.swift

@@ -4750,29 +4750,34 @@ extension KMMainViewController : KMMainToolbarControllerDelegate {
         self.leftSideViewController.showSearchMode(searchString)
     }
     
-    func toolbarViewController(_ viewController: KMToolbarViewController, searchAllAction searchString: String, forward: Bool) {
+    func toolbarViewController(_ viewController: KMToolbarViewController, findSearchAction searchString: String, forward: Bool) {
 //        if self.searchResults.count == 0 {
 //            let caseInsensitive = UserDefaults.standard.bool(forKey: "SKCaseInsensitiveFindKey")
         let caseInsensitive = UserDefaults.standard.bool(forKey: SKCaseInsensitiveSearchKey)
-            self.search(searchString: searchString, isCase: !caseInsensitive, display: false, needShowAll: true)
+            self.search(searchString: searchString, isCase: !caseInsensitive, display: false)
 //        }
         
-            self.leftSideViewController.showSearchMode(searchString)
-        
-//        var row = max(searchIndex - 1, 0)
-//        if forward {
-//            row = searchIndex + 1
-//        }
-//        if row >= 0 && row < self.searchResults.count && self.searchResults.count != 0 {
-//            let model = self.searchResults[row]
-//            if model.selection != nil {
-//                self.listView.go(to: model.selection, animated: true)
-//                self.listView.setHighlightedSelection(model.selection, animated: true)
-//                self.listView.setNeedsDisplayAnnotationViewForVisiblePages()
-//                
-//                searchIndex = row
-//            }
-//        }
+        var row = max(searchIndex - 1, 0)
+        if forward {
+            row = searchIndex + 1
+        }
+        if row >= 0 && row < self.searchResults.count && self.searchResults.count != 0 {
+            let model = self.searchResults[row]
+            if model.selection != nil {
+                self.listView.setHighlightedSelections([])
+                self.listView.go(to: model.selection, animated: true)
+                self.listView.setHighlightedSelection(model.selection, animated: true)
+                self.listView.setNeedsDisplayAnnotationViewForVisiblePages()
+                
+                searchIndex = row
+            }
+        }
+    }
+    
+    func toolbarViewController(_ viewController: KMToolbarViewController, findSearchAllAction searchString: String, forward: Bool) {
+        let caseInsensitive = UserDefaults.standard.bool(forKey: SKCaseInsensitiveSearchKey)
+            self.search(searchString: searchString, isCase: !caseInsensitive, display: false, needShowAll: true)
+        self.leftSideViewController.showSearchMode(searchString)
     }
 }