2011-03-31 54 views
10

当我关闭我的Mac应用程序时(通过单击窗口顶部栏上的红色十字按钮),应用程序图标停留在底部的扩展坞中。现在这是正常的行为。当用户再次点击它时,它不会启动应用程序,除非用户完全退出应用程序并再次重新启动应用程序。关闭Mac应用程序(单击顶部的红色十字)并通过点击停靠图标重新打开

Mac OS X上的一个类似示例是“活动监视器”。您可以点击顶部的红色十字按钮关闭应用程序,但停靠图标停留在此处。用户可以通过点击停靠图标重新打开它。

我如何在自己的应用程序中实现这一目标?

回答

20

如果你还在关注如何重新打开已关闭的窗口,用这种方法请参见http://developer.apple.com/library/mac/#documentation/cocoa/reference/NSApplicationDelegate_Protocol/Reference/Reference.html处理对码头中应用程序图标的点击。

有关更多信息,请查阅NSApplicationDelegate协议参考。

下面是文档:

http://developer.apple.com/library/mac/#documentation/cocoa/reference/NSApplicationDelegate_Protocol/Reference/Reference.html

希望这有助于!

3

实现该方法

- (BOOL)applicationShouldTerminateAfterLastWindowClosed:(NSApplication *)sender 
{ 
return NO; 
} 

在应用程序委托

您的应用程序窗口后会流连关闭,然后如果你实现

- (void)applicationDidBecomeActive:(NSNotification *)aNotification 
{ 
//dock icon has just been clicked , or cmd-tabbed into 
} 
在应用程序委托

当点击图标时,你可以做些事情,比如打开一个新的或旧的胜利

- (BOOL)applicationShouldHandleReopen:(NSApplication *)theApplication hasVisibleWindows:(BOOL)flag { 

[window makeKeyAndOrderFront:self]; 

return YES; 
} 

您可以使用此:道指如果你需要

其他相关应用程序事件

+0

他说,在applicationDidBecomeActive你可以看到,如果应用程序是没有窗户的,如果是,打开一个新的空白窗口(或类似)。 – 2011-03-31 12:35:38