我正在使用Xcode 6和Objective C编写Mac OS X应用程序。
启动应用程序并按下X后,窗口将被隐藏。有没有办法通过单击Dock上的App-Symbol显示窗口(如在Safari中)?
答案 0 :(得分:1)
当用户点击“X”(或红色的“关闭”点)时,实际上会完全关闭窗口并且不会隐藏它。
要重新显示窗口(假设它仍在内存中并且由于ARC而未释放),您需要执行"showWindow
" on the window controller。点击停靠栏图标时,抓住点击停靠栏图标的最佳位置可能是NSApplicationDelegate's "applicationDidBecomeActive:
" notification。
答案 1 :(得分:1)
单击“X”或关闭点然后关闭窗口,如果它是根窗口,那么您的应用程序将关闭。因此,如果您想在单击“X”或关闭点时隐藏,则可以使用以下内容: -
//Called when clicked close option on window
- (BOOL)applicationShouldTerminateAfterLastWindowClosed: (NSApplication *) theApplication
{
[[NSApplication sharedApplication] hide:self];
return NO;
}
//Called when you tap app icon on dock.
-(BOOL)applicationShouldHandleReopen:(NSApplication *)sender hasVisibleWindows:(BOOL)flag{
[[self.mainWindowController window] makeKeyAndOrderFront:self];
return YES;
}
但是请记住,当我们隐藏OS X应用程序然后在一段时间之后操作系统将睡眠该应用程序,将发生名为NSAppNap并且您的后台工作将被延迟或者仅仅OS将以批处理形式执行这些操作。