如何重新打开app的窗口,Xcode

时间:2015-09-30 19:18:27

标签: xcode swift cocoa xib

我正在阅读“OS X的Cocoa编程”(The Big Neard Ranch Guid),我做了一个最简单的应用程序来测试一个带有窗口控制器和xib文件的空窗口应用程序。我已根据本书编写了所有必要的代码,但在构建应用程序并关闭应用程序窗口后,我无法重新打开应用程序的窗口。怎么了 ?代码下方。 (我在MainMenu.xib中删除了窗口并相应地更改了AppDelegate;未选中“启动时可见”框) )。书中说showWindow(_ :)会重新打开窗口,但我看不到这个!

import Cocoa

 @NSApplicationMain
 class AppDelegate: NSObject, NSApplicationDelegate {

var control: Control?

func applicationDidFinishLaunching(aNotification: NSNotification) {

    //Create a window controller object
    let control = Control()

    //Put the window of the window controler om the screen
    control.showWindow(self)

    //Set the propertity to point to window controler
    self.control = control

}


func applicationWillTerminate(aNotification: NSNotification) {
    // Insert code here to tear down your application
}


}

在我的控制器类

import Cocoa
class Control: NSWindowController
{
    override var windowNibName: String?
        {
            return "Control"
}
}

在文件中,所有者标识用于控制器,窗口已连接到窗口插座。

1 个答案:

答案 0 :(得分:1)

您必须添加以下应用程序委托方法。

func applicationShouldHandleReopen(sender: NSApplication, hasVisibleWindows flag: Bool) -> Bool {
    if flag {
        control.window.orderFront(self)
    } else {
        control.window.makeKeyAndOrderFront(self)
    }
    return true
}