KMBookmarkSheetController.swift 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  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: Accessors
  32. var selectedFolder: KMBookmark? {
  33. return bookmarkSheetView.folderPopUp.selectedItem?.representedObject as? KMBookmark
  34. }
  35. }