在 Swift 中创建 NSWindowController Singleton 的正确方法是什么?

eri*_*icg 3 cocoa singleton nswindowcontroller swift nsstoryboard

我有一个示例项目:

https://github.com/ericgorr/nspanel_show.git

我的项目是一个故事板、基于文档的应用程序。我想使用自定义 Segue 来切换检查器窗口的可见状态。我所拥有的应该可以工作,但我无法完全确定如何使检查器窗口成为单例。

我相信我应该从以下开始:

class InspectorWindowController: NSWindowController
{
    static let sharedInstance = InspectorWindowController()

//    override func init()
//    {
//        
//    }

    override func windowDidLoad()
    {
        super.windowDidLoad()

        NSLog( ":::: %@", InspectorWindowController.sharedInstance );
    }
}
Run Code Online (Sandbox Code Playgroud)

但在我的情况下初始化应该是什么样子我却无法理解,特别是因为窗口位于故事板内部。

And*_*rew 5

您可以从窗口控制器场景中选择窗口控制器,然后在属性检查器中Single从 下的弹出窗口中选择Presentation。这将确保显示序列仅使用窗口控制器的单个实例。请参阅此答案以获取更多信息。