Xcode 在情节提要项目中为窗口使用自定义类

Xcode 在情节提要项目中为窗口使用自定义类,xcode,xcode9,nswindow,xcode-storyboard,Xcode,Xcode9,Nswindow,Xcode Storyboard,我使用Xcode 9.2创建了一个故事板项目 然后,我创建了NSWindow的一个自定义子类,并使用脚本编辑器将其设置为我的窗口的类 class CustomWindow: NSWindow { init() { super.init(contentRect: NSRect.zero, styleMask: .borderless, backing: .buffered, defer: true) self.setFrame(NSScreen.scree

我使用Xcode 9.2创建了一个故事板项目

然后,我创建了NSWindow的一个自定义子类,并使用脚本编辑器将其设置为我的窗口的类

class CustomWindow: NSWindow {

    init() {
        super.init(contentRect: NSRect.zero, styleMask: .borderless, backing: .buffered, defer: true)
        self.setFrame(NSScreen.screens[0].visibleFrame, display: false)
    }

}
[为清晰起见进行了编辑]

项目符合ok,但运行时在包含super.init调用的行上抛出此错误:

致命错误:使用未实现的初始值设定项 'initcontentRect:styleMask:backing:defer:'

超级类窗口是否已经包含了该实现


我缺少什么?

如果您在情节提要中使用它,那么您需要实现您得到错误的init方法,因为它是NSWindow的指定方法


例如,查看这个问题

但是super.init将在super类NSWindow上调用-我的类不需要特定的init方法,我不明白为什么要实现它。因为故事板正在使用指定的NSWindow类初始化器来创建您的windowok,我明白了。在这种情况下,它不应该是编译时错误吗?另外,我编辑了这个问题,以表明运行时错误发生在调用super.init时。。。在这种情况下,您的评论似乎不正确?我想编译器可能不知道您正在使用故事板来实例化窗口