在Swift中打开新窗口

时间:2015-06-18 17:16:17

标签: macos swift cocoa storyboard nswindow

我正在尝试在我的Swift应用程序中打开一个新窗口,但我无法打开它。

class AppDelegate: NSObject, NSApplicationDelegate 
{
    func applicationDidFinishLaunching(aNotification: NSNotification)
    {
        openMyWindow()
    }

    func openMyWindow()
    {
        if let storyboard = NSStoryboard(name: "Main",bundle: nil)
        {
            if let vc = storyboard.instantiateControllerWithIdentifier("MyList") as? MyListViewController
            {
                var myWindow = NSWindow(contentViewController: vc)
                myWindow.makeKeyAndOrderFront(self)
                let controller = NSWindowController(window: myWindow)

                controller.showWindow(self)

            }
        }
    }
}

我在IB中设置了故事板ID。

我已经跟踪了代码,它确实进入了窗口打开代码,但它没有做任何事情。

BTW我确实有一个默认的故事板入口点设置,默认窗口打开OK但是我需要打开第二个窗口,这是不起作用的。

1 个答案:

答案 0 :(得分:8)

执行openMyWindow()方法后,windowController将被释放,因此窗口为零。这就是它不存在的原因。

你必须在你的班级中按住窗口以保持活着,然后窗口才会显示。

var windowController : NSWindowController?