12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- //
- // KMNBaseWindowController.swift
- // PDF Reader Pro
- //
- // Created by tangchao on 2023/5/11.
- //
- import Cocoa
- class KMNBaseWindowController: NSWindowController {
-
- public var parentWindow: NSWindow?
- public var handler: ((String?) -> Void)!
- deinit {
- KMPrint(self.className + " deinit.")
-
- self.removeNotification()
- }
-
- override func windowDidLoad() {
- super.windowDidLoad()
-
- // Implement this method to handle any initialization after your window controller's window has been loaded from its nib file.
- self.initContentView()
- self.initNotification()
- }
-
- func initNotification() {
- updateUIThemeColor()
- NotificationCenter.default.addObserver(self, selector: #selector(updateUIThemeColor), name: APPAppearanceChangedNotificationName, object: nil)
-
- updateUILanguage()
- NotificationCenter.default.addObserver(self, selector: #selector(updateUILanguage), name: APPLanguageChangedNotificationName, object: nil)
- }
-
- func removeNotification() {
- DistributedNotificationCenter.default().removeObserver(self)
- }
-
- @objc func updateUIThemeColor() {}
-
- @objc func updateUILanguage() {}
-
- func beginSheetFinish() {}
-
- func initContentView() {}
- func own_beginSheetModal(for window: NSWindow?, completionHandler handler: ((String?) -> Void)?) {
- if window != nil {
- parentWindow = window
- window!.beginSheet(self.window!) { ModalResponse in
- self.handler?(nil)
- }
- }
- self.handler = handler
-
- beginSheetFinish()
- }
-
- func own_closeEndSheet() {
- parentWindow?.endSheet(self.window!)
- }
- }
|