可可 – 斯威夫特的NSWindowController.使用Nib进行子类化和初始化

可可 – 斯威夫特的NSWindowController.使用Nib进行子类化和初始化,第1张

概述在测试 Swift项目中,我是NSWindowController的子类.我的NSWindowController子类旨在使用特定的Nib文件.因此,希望在初始化我的窗口控制器时,窗口控制器实例自动加载nib文件.在Objective-C中,这是通过以下方式实现的: @implementation MyWindowController- (id)init { self = [super 在测试 Swift项目中,我是NSWindowController的子类.我的NSWindowController子类旨在使用特定的Nib文件.因此,希望在初始化我的窗口控制器时,窗口控制器实例自动加载nib文件.在Objective-C中,这是通过以下方式实现的:

@implementation MyWindowController- (ID)init {    self = [super initWithWindowNibname:"MyWindowNib"]    if (self) {        // whatever    }    return self}@end

现在,在Swift中这是不可能的:init()不能调用super.init(windowNibname :),因为后者被声明不是指定的初始化器,而是作为NSWindowController的方便.

怎么能在Swift中完成?我没有看到一种直截了当的方式.

P.S.:我已经看到了关于这个主题的其他问题,但是,只要我能够理解,解决方案都指向通过调用init(windowNibname :)初始化Window Controller.请注意,这不是理想的beheavIoUr.应该用init()初始化Window Controller,它应该是Window Controller本身“拿起”它的Nib文件并加载它.

解决方法 如果使用init()只调用super.init(windowNibname :),则可以改为覆盖windowNibname变量.

overrIDe var windowNibname: String  {    get {        return "MyWindowNib"    }}

然后应该没有必要弄乱初始化器.

总结

以上是内存溢出为你收集整理的可可 – 斯威夫特的NSWindowController.使用Nib进行子类化和初始化全部内容,希望文章能够帮你解决可可 – 斯威夫特的NSWindowController.使用Nib进行子类化和初始化所遇到的程序开发问题。

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

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存