我正在阅读“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"
}
}
在文件中,所有者标识用于控制器,窗口已连接到窗口插座。
答案 0 :(得分:1)
您必须添加以下应用程序委托方法。
func applicationShouldHandleReopen(sender: NSApplication, hasVisibleWindows flag: Bool) -> Bool {
if flag {
control.window.orderFront(self)
} else {
control.window.makeKeyAndOrderFront(self)
}
return true
}