我有几个选项卡的主要NSTabViewController
:
class MainTabViewController: NSTabViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Do view setup here.
}
override func tabView(_ tabView: NSTabView, didSelect tabViewItem: NSTabViewItem?) {
print(tabView)// returns <NSTabView: 0x101e17a10> but what to do with it ?
}
}
我想检查每个
NSViewController
,如果变量hasChanges
是true
,然后 pop 消息:如果我在
MainTabViewController
中对此进行检查,我会得到<NSTabView: 0x101e17a10>
及其处理方法,我不知道。如果我尝试在
NSTabViewDelegate
中使用MyViewController
,那么我不知道如何在其中委派MainTabViewController
。附在哪里?class MyViewController: HIDNSViewController {
func tabView(_ tabView: NSTabView, didSelect tabViewItem: NSTabViewItem?) {
//Never called
}
}
最佳答案
0x101e17a10
是tabView对象指向的NSTabView
实例的地址。您需要在didSelect方法中打印tabView 标识符。
您需要在“界面生成器”中设置标识符:
然后(例如):
override func tabView(_ tabView: NSTabView, didSelect tabViewItem: NSTabViewItem?) {
if tabView.selectedTabViewItem?.identifier! as! String == "1" {
print("FIRST VC")
} else {
print("SECOND VC")
}
}
制表时的输出: