KMBookmarkSheetController.swift 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. //
  2. // KMBookmarkSheetController.swift
  3. // PDF Reader Pro
  4. //
  5. // Created by lizhe on 2024/2/5.
  6. //
  7. import Cocoa
  8. typealias KMBookmarkSheetControllerDoneAction = (_ controller: KMBookmarkSheetController, _ type: KMBookmarkType, _ label: String) -> ()
  9. typealias KMBookmarkSheetControllerCancelAction = (_ controller: KMBookmarkSheetController, _ type: KMBookmarkType) -> ()
  10. class KMBookmarkSheetController: NSWindowController {
  11. @IBOutlet weak var bookmarkSheetView: KMBookmarkSheetView!
  12. var doneAction: KMBookmarkSheetControllerDoneAction?
  13. var cancelAction: KMBookmarkSheetControllerCancelAction?
  14. var type: KMBookmarkType = .bookmark
  15. static func showBookmarkSheetController(type: KMBookmarkType) -> KMBookmarkSheetController {
  16. let controller = KMBookmarkSheetController.init(windowNibName: "KMBookmarkSheetController")
  17. controller.type = type
  18. NSWindow.currentWindow().beginSheet(controller.window!)
  19. return controller
  20. }
  21. override func windowDidLoad() {
  22. self.bookmarkSheetView.type = type
  23. self.bookmarkSheetView.cancelAction = { [unowned self] view, type in
  24. self.cancelAction?(self, type)
  25. self.window?.close()
  26. }
  27. self.bookmarkSheetView.doneAction = { [unowned self] view, type, label in
  28. self.doneAction?(self, type, label)
  29. }
  30. }
  31. // MARK: Sheet Presentation
  32. func beginSheetModal(for window: NSWindow, completionHandler handler: @escaping (NSApplication.ModalResponse) -> Void) {
  33. // let bookmarkController = KMBookmarkController.sharedBookmarkController()
  34. // let root = bookmarkController.bookmarkRoot()
  35. // folderPopUp.removeAllItems()
  36. // addMenuItems(forBookmarks: [root], level: 0, toMenu: folderPopUp.menu!)
  37. // folderPopUp.selectItem(at: 0)
  38. //
  39. //
  40. // super.window?.beginSheet(window, completionHandler: { response in
  41. // handler(response)
  42. // })
  43. // super.beginSheetModal(for: window) { response in
  44. // handler(response)
  45. // }
  46. }
  47. // MARK: Accessors
  48. var selectedFolder: KMBookmark? {
  49. return bookmarkSheetView.folderPopUp.selectedItem?.representedObject as? KMBookmark
  50. }
  51. }