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,则d出消息:
“You have unsaved changes. Do you want to change tab ?”
如果我在MainTabVIEwController中检查这个,我得到< nstabview:0x101e17a10>以及如何处理它我不知道.
如果我尝试在我的MyVIEwController中使用nstabviewDelegate,那么我不知道如何委托MainTabVIEwController.哪附上呢?
class MyVIEwController: HIDNSVIEwController { func tabVIEw(_ tabVIEw: nstabview,dIDSelect tabVIEwItem: nstabviewItem?) { //Never called }}解决方法 0x101e17a10是tabVIEw对象指向的nstabview实例的地址.您需要在dIDSelect方法中打印tabVIEw标识符.
您需要在Interface Builder中设置标识符:
然后(例如):
overrIDe func tabVIEw(_ tabVIEw: nstabview,dIDSelect tabVIEwItem: nstabviewItem?) { if tabVIEw.selectedTabVIEwItem?.IDentifIEr! as! String == "1" { print("FirsT VC") } else { print("SECOND VC") }}
标签输出:
总结以上是内存溢出为你收集整理的swift – Cocoa委托nstabviewcontroller全部内容,希望文章能够帮你解决swift – Cocoa委托nstabviewcontroller所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)