|
@@ -10,8 +10,7 @@ import Cocoa
|
|
|
class KMBaseXibView: NSView {
|
|
|
|
|
|
@IBOutlet var contentView: NSView!
|
|
|
-
|
|
|
- var isObservingAppearance = false
|
|
|
+
|
|
|
deinit {
|
|
|
self.removeNotification()
|
|
|
}
|
|
@@ -24,6 +23,7 @@ class KMBaseXibView: NSView {
|
|
|
self.updateLanguage()
|
|
|
self.reloadData()
|
|
|
self.addNotification()
|
|
|
+ self.changeEffectiveAppearance()
|
|
|
}
|
|
|
|
|
|
override init(frame frameRect: NSRect) {
|
|
@@ -34,6 +34,7 @@ class KMBaseXibView: NSView {
|
|
|
self.updateLanguage()
|
|
|
self.reloadData()
|
|
|
self.addNotification()
|
|
|
+ self.changeEffectiveAppearance()
|
|
|
}
|
|
|
|
|
|
private func initContentView() {
|
|
@@ -90,36 +91,20 @@ class KMBaseXibView: NSView {
|
|
|
}
|
|
|
|
|
|
func addNotification() {
|
|
|
-
|
|
|
- self.addObserver(self, forKeyPath: "effectiveAppearance", options: .new, context: nil)
|
|
|
- isObservingAppearance = true
|
|
|
+ NotificationCenter.default.addObserver(self, selector: #selector(changeEffectiveAppearance), name: NSNotification.Name(rawValue: "kEffectiveAppearance"), object: nil)
|
|
|
}
|
|
|
|
|
|
func removeNotification() {
|
|
|
- if isObservingAppearance {
|
|
|
- self.removeObserver(self, forKeyPath: "effectiveAppearance")
|
|
|
- NotificationCenter.default.removeObserver(self)
|
|
|
- }
|
|
|
- isObservingAppearance = false
|
|
|
+ NotificationCenter.default.removeObserver(self)
|
|
|
}
|
|
|
|
|
|
- override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?) {
|
|
|
- if keyPath == "effectiveAppearance" {
|
|
|
- let isDarkModel = KMAdvertisementConfig.isDarkModel()
|
|
|
- if isDarkModel {
|
|
|
- self.appearance = NSAppearance(named: .darkAqua)
|
|
|
- } else {
|
|
|
- self.appearance = NSAppearance(named: .aqua)
|
|
|
- }
|
|
|
-
|
|
|
-// if isDarkModel {
|
|
|
-// NSApp.appearance = NSAppearance(named: .darkAqua)
|
|
|
-// } else {
|
|
|
-// NSApp.appearance = NSAppearance(named: .aqua)
|
|
|
-// }
|
|
|
-
|
|
|
- self.updateUI()
|
|
|
- print("黑暗模式触发")
|
|
|
+ @objc func changeEffectiveAppearance() {
|
|
|
+ let isDarkModel = KMAdvertisementConfig.isDarkModel()
|
|
|
+ if isDarkModel {
|
|
|
+ self.appearance = NSAppearance(named: .darkAqua)
|
|
|
+ } else {
|
|
|
+ self.appearance = NSAppearance(named: .aqua)
|
|
|
}
|
|
|
+ self.updateUI()
|
|
|
}
|
|
|
}
|