KMNBaseViewController.swift 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. //
  2. // KMNBaseViewController.swift
  3. // PDF Reader Pro
  4. //
  5. // Created by tangchao on 2023/5/5.
  6. //
  7. import Cocoa
  8. class KMNBaseViewController: NSViewController {
  9. var progressC: SKProgressController?
  10. deinit {
  11. KMPrint(self.className + " deinit.")
  12. self.removeNotifations()
  13. }
  14. override func viewDidLoad() {
  15. super.viewDidLoad()
  16. initContentView()
  17. self.addNotifations()
  18. }
  19. // Noti
  20. func addNotifations() {
  21. updateUIThemeColor()
  22. NotificationCenter.default.addObserver(self, selector: #selector(updateUIThemeColor), name: APPAppearanceChangedNotificationName, object: nil)
  23. updateUILanguage()
  24. NotificationCenter.default.addObserver(self, selector: #selector(updateUILanguage), name: APPLanguageChangedNotificationName, object: nil)
  25. }
  26. func removeNotifations() {
  27. NotificationCenter.default.removeObserver(self)
  28. }
  29. @objc func updateUIThemeColor() {
  30. var isDarkMode: Bool = KMAdvertisementConfig.isDarkModel()
  31. if isDarkMode {
  32. self.view.appearance = NSAppearance(named: .darkAqua)
  33. } else {
  34. self.view.appearance = NSAppearance(named: .aqua)
  35. }
  36. }
  37. @objc func updateUILanguage() {}
  38. func initContentView() {}
  39. func showProgressWindow(message: String = "") {
  40. if (self.progressC != nil) {
  41. self.hiddenProgressWindow()
  42. }
  43. let progressC = SKProgressController()
  44. progressC.window?.backgroundColor = NSColor.km_init(hex: "#36383B")
  45. progressC.window?.contentView?.wantsLayer = true
  46. progressC.window?.contentView?.layer?.backgroundColor = NSColor.km_init(hex: "#36383B").cgColor
  47. progressC.progressField.textColor = NSColor.white
  48. progressC.showClose = false
  49. progressC.message = message
  50. self.progressC = progressC
  51. self.view.window?.beginSheet(progressC.window!)
  52. }
  53. func hiddenProgressWindow() {
  54. if let _progressC = self.progressC {
  55. if let _window = _progressC.window {
  56. self.view.window?.endSheet(_window)
  57. }
  58. self.progressC = nil
  59. }
  60. }
  61. }