无法使用情节提要自定义实例化窗口控制器

问题描述 投票:0回答:1

尝试从情节提要中自定义实例化窗口控制器时,我感觉像是个错误。我正在使用NSStoryboard.instantiateController(identifier:creator:),这是MacOS 10.15中的新功能。有问题的代码块是:

Let mainWindowController = storyboard.instantiateController(identifier: "Analysis Window Controller") { aDecoder in  
            MainWindowController(coder: aDecoder)  
        } 

我已经成功地使用了这个确切的代码来自定义实例化主view控制器,并将该视图分配给一个新窗口和一个新窗口控制器。很好我还可以使用老式的方式实例化window控制器,而无需使用InstantiateController(identifier :)进行自定义初始化。但是,当我尝试上述代码用于window控制器的custom实例化时,我遇到以下错误:

-[NSClassSwapper _createControllerForCreator:coder:中的断言失败...自定义实例化的控制器必须调用-[super initWithCoder:]]

请注意,我的自定义视图控制器类(有效)和我的自定义窗口控制器类MainWindowController(均无效)都实现了简单的初始化方法:

  required init?(coder: NSCoder) {  
        super.init(coder: coder)  
    }  

[我知道此功能自OS 10.15起是新功能,但documentation表示此功能应适用于窗口控制器和视图控制器,并且错误消息对我没有任何意义。

swift macos xcode-storyboard macos-catalina nswindowcontroller
1个回答
0
投票

如果您想继续讨论,我会以反馈#FB7626059的形式提交(我也遇到了这个问题。]

© www.soinside.com 2019 - 2024. All rights reserved.