// // KMTextFieldSheetController.swift // PDF Reader Pro // // Created by wanjun on 2023/10/7. // import Cocoa class KMTextFieldSheetController: NSWindowController { @IBOutlet weak var textField: NSTextField! @IBOutlet weak var okButton: NSButton! @IBOutlet weak var cancelButton: NSButton! @IBOutlet weak var pageBox: NSComboBox! @IBOutlet weak var pageLabel: NSTextField! var _stringValue: String? var callback: ((String) -> Void)? static var windowController: KMTextFieldSheetController? deinit { print(#function) } override func windowDidLoad() { super.windowDidLoad() KMTextFieldSheetController.windowController = self pageLabel.stringValue = NSLocalizedString("Page", comment: "") + ":" self.cancelButton.title = NSLocalizedString("Cancel", comment: "") self.okButton.title = NSLocalizedString("OK", comment: "") } var stringValue: String { get { return self.pageBox.stringValue } set { self.pageBox.stringValue = newValue } } @IBAction func okAction(_ sender: Any) { if let callback = callback, let sender = sender as? NSButton, sender == okButton { callback(stringValue) } if #available(macOS 10.13, *) { NSApp.endSheet(window!, returnCode: (sender as AnyObject).tag) } else { NSApp.endSheet(window!) } window!.orderOut(self) KMTextFieldSheetController.windowController = nil } }