大佬教程收集整理的这篇文章主要介绍了可可 – 将Swift和init(windowNibName)中的NSWindowController子类化,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
在Swift中,init(windowNibName)只能作为一个方便的初始化器,NSWindowController的指定的初始化器是init(window),它显然需要我在一个窗口中传递。
我不能调用super.init(windowNibName)从我的子类,因为它不是指定的初始化,所以我显然必须实现方便init(windowNibName),这反过来需要调用self.init(window)。但如果我有我的nib@L_450_10@,如何访问nib@L_450_10@的窗口发送到该初始化程序?
// this overrides none of designated initializers class MyWindowController: NSWindowController { override func windowDidLoad() { super.windowDidLoad() } } // this one overrides all of them // // AwkWARDly enough,I see only two initializers // when viewing `NSWindowController` source from Xcode,// but I have to also override `init()` to make these rules apply. // Seems like a bug. class MyWindowController: NSWindowController { init() { super.init() } init(window: NSWindow!) { super.init(window: window) } init(coder: NSCoder!) { super.init(coder: coder) } override func windowDidLoad() { super.windowDidLoad() } } // this will work with either of the above let mwc: MyWindowController! = MyWindowController(windowNibName: "MyWindow")
这在语言指南中的“初始化/自动初始化器继承”中介绍:
以上是大佬教程为你收集整理的可可 – 将Swift和init(windowNibName)中的NSWindowController子类化全部内容,希望文章能够帮你解决可可 – 将Swift和init(windowNibName)中的NSWindowController子类化所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。