我已经创建了一个适用于Mac桌面的App,它正在运行,但Apple拒绝了它,因为当我们运行App并使用“X”关闭它时,我们无法通过App图标从Dock重新打开它仍然存在,但它没有再次打开应用程序,我正在努力的主要问题是“如果我们关闭应用程序,然后在菜单栏中没有选项打开它”我见过的其他应用程序
我该怎么办?
答案 0 :(得分:1)
要为红色(x)按钮实现简单的显示/隐藏功能,请将App Delegate类作为主窗口的窗口委托。
然后将以下代码添加到其中:
- (BOOL)windowShouldClose:(id)sender {
[[NSApplication sharedApplication] hide:self];
return NO;
}
- (void)applicationDidBecomeActive:(NSNotification *)notification {
[[NSApplication sharedApplication] unhide:self];
}
答案 1 :(得分:1)
这是Swift 3的答案:
在View Controller类中符合NSWindowDelegate。然后通过覆盖以下方法隐藏窗口而不是关闭它。
self.view.window?.delegate = self
func windowShouldClose(_ sender: Any) -> Bool {
NSApplication.shared().hide(self)
return false
}
然后在停靠栏中点击应用程序图标时取消隐藏应用程序。
func applicationDidBecomeActive(_ notification: Notification) {
NSApplication.shared().unhide(self)
}
答案 2 :(得分:0)
我的2项迅捷5 / Xcode 10
注意:您也可以在ViewController中调用这些方法(如果有用),以防止在NASWindow / NSView-Controllers之间拆分代码。 在这种情况下:
internalLink
...
class ViewController: NSViewController, **NSWindowDelegate**
{
...
不愿意通过自我.. :(与上述其他人一样。)
override func viewWillAppear() {
// we choose to delegate ourselves. must be done here, in viewDidLoad window is nil
let window = self.view.window
window!.delegate = self
}