按X后如何显示窗口

时间:2014-09-26 13:09:46

标签: objective-c macos

我正在使用Xcode 6和Objective C编写Mac OS X应用程序。

启动应用程序并按下X后,窗口将被隐藏。有没有办法通过单击Dock上的App-Symbol显示窗口(如在Safari中)?

2 个答案:

答案 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将以批处理形式执行这些操作。