是这样我做了一个 App ,并有状态栏( Status bar Menu )菜单功能, 我点击这个状态栏按钮的时候选择隐藏或者展示主窗口,但是如果主窗口被手动点击 x 关掉就不顶用了,所以我想着覆盖掉关闭窗口为隐藏窗口,求助各位大佬。
我用了 AppDelegate 去构建状态栏菜单,这是我处理显示和隐藏主窗口的代码
@objc func menuButtonAction(sender: AnyObject){ if NSApp.isHidden{ NSApp.unhide(nil) NSApp.activate(ignoringOtherApps: true) }else{ NSApp.hide(nil) } }
![]() | 1 objectxiang 2022-05-15 20:25:31 +08:00 其实不用,在 AppDelegate 里去 handleReopen 的回调,回调里面把你的主窗口重新显示就行了。 |
![]() | 2 ChrisFreeMan OP 问题解决了,翻遍全网居然在知乎上找到了答案, AppDelegate 先继承协议 NSWindowDelegate func applicationDidFinishLaunching(_ notification: Notification) { mainWindow = NSApp.windows[0] mainWindow!.delegate = self setUpMacMenu() } func windowShouldClose(_ sender: NSWindow) -> Bool { NSApp.hide(nil) return false } |
![]() | 3 ChrisFreeMan OP @objectxiang 刚解决了,谢谢朋友的回复 |