如何找出NSTabViewItem的更改时间,即用户更改了NSTabView的视图。
理想情况下,我想生成通知,但欢迎任何解决方案。
谢谢!
答案 0 :(得分:5)
我的原始回答建议观察selectedTabViewItem
的{{1}},但这似乎不起作用(在测试时我只能观察NSTabView
)。
一个更聪明的解决方案是使用委托。在相关控制器中实施NSKeyValueObservingOptionInitial
。
文档here。
答案 1 :(得分:1)
这是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)
}
}
然后在Interface Builder中:
delegate
您还可以在NSTabViewDelegate
的委托as explained in the documentation中实施其他方法。