如何找出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