swift – Cocoa委托nstabviewcontroller

swift – Cocoa委托nstabviewcontroller,第1张

概述我有一个主要的NSTabViewController,几个标签: class MainTabViewController: NSTabViewController { override func viewDidLoad() { super.viewDidLoad() // Do view setup here. } override fu 我有一个主要的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,则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所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1009971.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存