当NSWindow订购时,让App失去焦点

时间:2012-06-14 15:33:08

标签: objective-c cocoa nswindow

NSApplication *thisApp = [NSApplication sharedApplication];
[thisApp activateIgnoringOtherApps:YES];
[self.window orderFrontRegardless];

我使用上面的代码使我的应用程序在需要显示窗口时获得焦点,并且我想在隐藏窗口时使应用程序失去焦点。

[self.window orderOut:self];
[self.window resignMainWindow];
[self.window resignKeyWindow];

上面的代码无法解决问题。我该怎么办?

1 个答案:

答案 0 :(得分:3)

如果您乐意隐藏应用程序的所有窗口,可以使用[[NSApplication sharedApplication] hide:nil]。这将自动激活下一个应用程序。如果你想激活另一个应用程序,但仍然保持你的应用程序在屏幕上,这有点困难。对于Mac OS X 10.6+,您可以使用NSRunningApplication类在激活之前查找当前应用程序,然后在完成后重新激活它。