当我关闭我的Mac应用程序时(通过单击窗口顶部栏上的红色十字按钮),应用程序图标停留在底部的扩展坞中。现在这是正常的行为。当用户再次点击它时,它不会启动应用程序,除非用户完全退出应用程序并再次重新启动应用程序。关闭Mac应用程序(单击顶部的红色十字)并通过点击停靠图标重新打开
Mac OS X上的一个类似示例是“活动监视器”。您可以点击顶部的红色十字按钮关闭应用程序,但停靠图标停留在此处。用户可以通过点击停靠图标重新打开它。
我如何在自己的应用程序中实现这一目标?
当我关闭我的Mac应用程序时(通过单击窗口顶部栏上的红色十字按钮),应用程序图标停留在底部的扩展坞中。现在这是正常的行为。当用户再次点击它时,它不会启动应用程序,除非用户完全退出应用程序并再次重新启动应用程序。关闭Mac应用程序(单击顶部的红色十字)并通过点击停靠图标重新打开
Mac OS X上的一个类似示例是“活动监视器”。您可以点击顶部的红色十字按钮关闭应用程序,但停靠图标停留在此处。用户可以通过点击停靠图标重新打开它。
我如何在自己的应用程序中实现这一目标?
如果你还在关注如何重新打开已关闭的窗口,用这种方法请参见http://developer.apple.com/library/mac/#documentation/cocoa/reference/NSApplicationDelegate_Protocol/Reference/Reference.html处理对码头中应用程序图标的点击。
有关更多信息,请查阅NSApplicationDelegate协议参考。
下面是文档:
希望这有助于!
实现该方法
- (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;
}
您可以使用此:道指如果你需要
其他相关应用程序事件
我认为,上述问题的答案是不完全正确,要实现这一点,你应该重写applicationShouldHandleReopen(_:hasVisibleWindows:)
https://developer.apple.com/reference/appkit/nsapplicationdelegate/1428638-applicationshouldhandlereopen
他说,在applicationDidBecomeActive你可以看到,如果应用程序是没有窗户的,如果是,打开一个新的空白窗口(或类似)。 – 2011-03-31 12:35:38