方法一:

1
2
3
4
5
6
7
8
9
10
11
var window: NSWindow!
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)
window = controller.window
}
return true
}

方法二:

1
2
3
4
5
6
7
8
9
10
11
var window: NSWindow!

func applicationDidFinishLaunching(_ aNotification: Notification) {
window = NSApplication.shared.windows[0]
}
func applicationShouldHandleReopen(_ sender: NSApplication, hasVisibleWindows flag: Bool) -> Bool {
if !flag{
window.makeKeyAndOrderFront(nil)
}
return true
}

方法三:

1
2
3
4
5
6
7
8
9
10
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
}