如何找出NSTabViewItem何时发生变化,即用户是否更改了NSTabView的视图。Cocoa - 找出NSTabView何时更改了它的标签
理想情况下,我想生成一个通知,但任何解决方案将受到欢迎。
谢谢!
如何找出NSTabViewItem何时发生变化,即用户是否更改了NSTabView的视图。Cocoa - 找出NSTabView何时更改了它的标签
理想情况下,我想生成一个通知,但任何解决方案将受到欢迎。
谢谢!
我原来的答复建议观察NSTabView
selectedTabViewItem
,但似乎并没有工作(在测试中,我只能得到它来观察NSKeyValueObservingOptionInitial
)。
一个可能更聪明的解决方案是使用委托。在相关控制器中实施tabView:didSelectTabViewItem:
。
Docs here。
这里是斯威夫特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中实施其他方法。
你的意思是这样的: [NSNotificationCenter defaultCenter]的addObserver:自 \t选择:@选择(STVI :) \t名:@ “selectedTabViewItem” \t对象:无]。 \t \t \t \t \t \t \t \t \t \t \t \t “STVI”是方法被调用。在这种情况下,这是行不通的,没有通知被张贴。 – Kevin 2012-03-27 08:09:59
感谢您的答复,不幸的是,我得到错误 'NSTabView'可能不会响应'-addObserver:forKeyPath:上下文:' 任何想法? – Kevin 2012-03-27 08:26:10
另外,当你提到绑定时,你通常会绑定选项卡视图?我正在使用OS X,所以iOS问题到现在还没有问题。 – Kevin 2012-03-27 08:29:16