Najlepszą udało mi się dowiedzieć to:jak radzić applicationShouldHandleReopen w oparciu dla dokumentu Storyboard Aplikacja
func applicationShouldHandleReopen(sender: NSApplication, hasVisibleWindows flag: Bool) -> Bool {
if !flag{
let sb = NSStoryboard(name: "Main", bundle: nil)
let controller = sb?.instantiateInitialController() as NSWindowController
controller.window?.makeKeyAndOrderFront(self)
self.window = controller.window
}
return true
}
Ale to wymaga, aby ustawić ref do okna na moim app delegata. Ponieważ nie jest to wymagane, gdy aplikacja początkowo się uruchamia, jestem całkiem pozytywna, robię coś złego, podczas gdy brakuje czegoś oczywistego.
To rozwiązanie również wydaje się działać
func applicationShouldHandleReopen(sender: NSApplication, hasVisibleWindows flag: Bool) -> Bool {
if !flag{
for window in sender.windows{
if let w = window as? NSWindow{
w.makeKeyAndOrderFront(self)
}
}
}
return true
}
Oto 3rd rozwiązanie, które ja również znaleźć prace, z poziomu NSApplicationDelegate
:
var mainWindow: NSWindow!
func applicationDidFinishLaunching(aNotification: NSNotification) {
mainWindow = NSApplication.sharedApplication().windows[0] as! NSWindow
}
func applicationShouldHandleReopen(sender: NSApplication, hasVisibleWindows flag: Bool) -> Bool {
if !flag{
mainWindow.makeKeyAndOrderFront(nil)
}
return true
}
nie mam pojęcia, dlaczego Apple nie dostarczaj wskazówek na ten temat lub pozwól ustawić wylot z storyboardu dla okna. Wygląda na to, że często potrzeba. Może nadal po prostu coś mi brakuje.