在 macOS 系统偏好设置的主要部分,用户可以更改“侧边栏图标大小”。当有问题的 NSOutlineView
的大小模式设置为 default
时,此设置会更改侧边栏中使用的图标大小(并且因为 macOS 11 还会更改字体大小)。
我想在我的应用程序中添加一个 UserNotification
观察者来跟踪对所述设置的更改,因此我可以在每次大小更改后执行一些额外的微调,但找不到任何适用的 NSNotification.Name
或其他常数。
欢迎任何可行的解决方案或建议。
答案 0 :(得分:0)
我知道我有一个解决方案,但我正在寻找错误的项目。这是我发现的。观察 UserDefaults
不是一个很好的选择,但至少它有效:
fileprivate let tableViewDefaultSizeModeKey = "NSTableViewDefaultSizeMode"
override func viewDidLoad() {
super.viewDidLoad()
UserDefaults.standard.addObserver(self, forKeyPath: tableViewDefaultSizeModeKey, options: .new, context: nil)
}
override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?) {
if keyPath == tableViewDefaultSizeModeKey {
// Do whatever is needed
}
}