2012-08-11 124 views
-1

我创建了Mac桌面应用程序,但它正在运行,但Apple拒绝了它,因为当我们运行应用程序并使用“X”关闭它时,我们不能从码头重新打开它,尽管应用程序图标仍然存在,但它不会再次打开应用程序,而我所面临的主要问题是“如果关闭应用程序,然后在菜单栏中是没有选择打开它“我见过的其他应用程序这样做。 任何人都可以告诉我该怎么做。 Plz帮我紧急。如何在使用X关闭Mac桌面应用程序后重新打开Mac桌面应用程序

+1

你是什么意思“关闭它使用X”?此外,什么阻止你调试和修复你的应用程序,使其正常工作?毕竟,你写了它,所以你知道它是如何工作的,对吗? – 2012-08-11 07:35:31

+0

使用X关闭表示应用程序最左角的X(关闭)按钮。 – 2012-08-11 08:41:37

+0

我现在可以使用此链接从Dock重新启动应用程序:http://stackoverflow.com/questions/5498376/closing-mac-application-clicking-red-cross-on-top-and-reopening-通过点击做 但我怎样才能显示在菜单栏中打开选项? – 2012-08-11 08:46:42

回答

1

要为红色(x)按钮实现简单的显示/隐藏功能,请将App Delegate类设置为主窗口的窗口委托。

然后将下面的代码添加到它:

- (BOOL)windowShouldClose:(id)sender { 
    [[NSApplication sharedApplication] hide:self]; 

    return NO; 
} 

- (void)applicationDidBecomeActive:(NSNotification *)notification { 
    [[NSApplication sharedApplication] unhide:self]; 
} 
+0

谢谢。它为我工作。 – Sid 2013-12-10 14:55:14

+0

这不起作用。 – 2017-08-24 20:07:08

1

下面是斯威夫特3回答:

顺应NSWindowDelegate在视图控制器类。然后通过覆盖以下方法隐藏窗口而不是关闭窗口。

self.view.window?.delegate = self 

func windowShouldClose(_ sender: Any) -> Bool { 
    NSApplication.shared().hide(self) 
    return false 
} 

然后在应用程序图标在dock中单击时取消隐藏应用程序。

func applicationDidBecomeActive(_ notification: Notification) { 
    NSApplication.shared().unhide(self) 
} 
+0

自我是一个不同的自我! – 2017-08-24 20:07:42

+0

和applicationDidBecomeActive仅在appdelegate中调用 – 2017-08-24 20:08:09