// // KMBookmarkSheetController.swift // PDF Reader Pro // // Created by lizhe on 2024/2/5. // import Cocoa typealias KMBookmarkSheetControllerDoneAction = (_ controller: KMBookmarkSheetController, _ type: KMBookmarkType, _ label: String) -> () typealias KMBookmarkSheetControllerCancelAction = (_ controller: KMBookmarkSheetController, _ type: KMBookmarkType) -> () class KMBookmarkSheetController: NSWindowController { @IBOutlet weak var bookmarkSheetView: KMBookmarkSheetView! var doneAction: KMBookmarkSheetControllerDoneAction? var cancelAction: KMBookmarkSheetControllerCancelAction? var type: KMBookmarkType = .bookmark var stringValue: String = "" { didSet { self.bookmarkSheetView?.bookmarkTextField.stringValue = stringValue } } static func showBookmarkSheetController(type: KMBookmarkType) -> KMBookmarkSheetController { let controller = KMBookmarkSheetController.init(windowNibName: "KMBookmarkSheetController") controller.type = type NSWindow.currentWindow().beginSheet(controller.window!) return controller } override func windowDidLoad() { self.bookmarkSheetView.type = type self.bookmarkSheetView.bookmarkTextField.stringValue = stringValue self.bookmarkSheetView.cancelAction = { [unowned self] view, type in self.cancelAction?(self, type) self.km_quick_endSheet() } self.bookmarkSheetView.doneAction = { [unowned self] view, type, label in self.doneAction?(self, type, label) self.km_quick_endSheet() } } // MARK: Accessors var selectedFolder: KMBookmark? { return bookmarkSheetView.folderPopUp.selectedItem?.representedObject as? KMBookmark } }