在一个测试的Swift项目中,我正在创建
现在,在Swift中这是不可能的:
如何在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中实现这一点?我没有看到一个直接的方法来做到这一点。
备注:我已经看到其他关于这个主题的问题,但是据我所能理解,所有的解决方案都指向通过调用
init(windowNibName:)
来初始化Window Controller。请注意,这并不是期望的行为。Window Controller应该通过init()
进行初始化,并且它应该是Window Controller本身“拾取”其Nib文件并加载它。