KMLeftSideViewController+Search.swift 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. //
  2. // KMLeftSideViewController+Search.swift
  3. // PDF Master
  4. //
  5. // Created by tangchao on 2023/12/24.
  6. //
  7. import Foundation
  8. // MARK: - Actions
  9. extension KMLeftSideViewController {
  10. // 显示搜索模块
  11. func showSearchMode(_ searchString: String = "") {
  12. if self.leftView.segmentedControl.selectedSegment == 4 {
  13. } else {
  14. self.leftView.segmentedControl.selectedSegment = 4
  15. }
  16. self.searchViewController.searchField.stringValue = searchString
  17. }
  18. }
  19. // MARK: - Menu
  20. extension KMLeftSideViewController {
  21. @objc func addAnnotationsForSelections(_ sender: NSMenuItem) {
  22. guard let selections = sender.representedObject as? [CPDFSelection], selections.count > 0 else {
  23. return
  24. }
  25. for selection in selections {
  26. self.listView.addAnnotation(with: CAnnotationType(rawValue: sender.tag) ?? .circle, selection: selection, page: selection.page, bounds: selection.bounds)
  27. }
  28. }
  29. @objc func selectSelections(_ sender: NSMenuItem) {
  30. guard let selections = sender.representedObject as? [CPDFSelection], selections.count > 0 else {
  31. return
  32. }
  33. self.listView.currentSelection = CPDFSelection.selectionByAddingSelections(selections as NSArray)
  34. }
  35. @objc func toggleWholeWordSearch(_ sender: AnyObject?) {
  36. if self.mwcFlags.wholeWordSearch == 1 {
  37. self.mwcFlags.wholeWordSearch = 0
  38. } else {
  39. self.mwcFlags.wholeWordSearch = 1
  40. }
  41. if self.searchField.stringValue.isEmpty == false {
  42. self.search(self.searchField)
  43. }
  44. UserDefaults.standard.setValue(self.mwcFlags.wholeWordSearch, forKey: SKWholeWordSearchKey)
  45. UserDefaults.standard.synchronize()
  46. }
  47. @objc func toggleCaseInsensitiveSearch(_ sender: AnyObject?) {
  48. if self.mwcFlags.caseInsensitiveSearch == 0 {
  49. self.mwcFlags.caseInsensitiveSearch = 1
  50. } else {
  51. self.mwcFlags.caseInsensitiveSearch = 0
  52. }
  53. if self.searchField.stringValue.isEmpty == false {
  54. self.search(self.searchField)
  55. }
  56. UserDefaults.standard.setValue(self.mwcFlags.caseInsensitiveSearch, forKey: SKCaseInsensitiveSearchKey)
  57. UserDefaults.standard.synchronize()
  58. }
  59. }