如何找出 NSTabViewItem 何时更改,即用户更改了 NSTabView 的视图?
理想情况下,我想生成通知,但欢迎任何解决方案。
如何找出 NSTabViewItem 何时更改,即用户更改了 NSTabView 的视图?
理想情况下,我想生成通知,但欢迎任何解决方案。
我最初的答案建议观察selectedTabViewItem
,NSTabView
但这似乎不起作用(在测试中我只能让它观察NSKeyValueObservingOptionInitial
)。
一个可能更聪明的解决方案是使用委托。tabView:didSelectTabViewItem:
在相关控制器中实现。
文档在这里。
这是 Swift 3 中的一个示例。
为您创建一个自定义类,NSTabViewController
作为NSTabView
. 该类NSTabViewController
已经实现了NSTabViewDelegate
协议。
class CustomTabViewController: NSTabViewController {
override func tabView(_ tabView: NSTabView, didSelect tabViewItem: NSTabViewItem?) {
let identifier = tabViewItem?.identifier as? String
print(identifier)
}
}
然后在界面生成器中:
delegate
从出现的小弹出窗口中选择您还可以在您的委托中实现其他方法,如NSTabViewDelegate
.