让Cocoa应用程序保持在全屏应用程序之上

时间:2011-12-21 01:15:34

标签: macos cocoa fullscreen

我正在开发一个具有状态菜单的应用程序,用户可以从该菜单打开应用程序的主窗口。我希望能够在全屏应用程序之上打开此窗口。如果应用程序是代理(UIElement)设置为,则以下代码可以正常工作:

- (IBAction)showMainWindow:(id)sender
{
   [_window makeKeyAndOrderFront:self];
   [NSApp activateIgnoringOtherApps:YES];
}

但是,我想在码头上也有一个图标。如果应用程序是代理(UIElement)设置为 showMainWindow会导致应用程序跳转到其他空间而不是显示在活动全屏应用程序的顶部。有解决方案吗?

1 个答案:

答案 0 :(得分:3)

为了完整起见,我在这里回答了我自己的问题。

经过一番研究后,没有办法绕过它。它就像OS X的工作方式一样。

我的解决方案:我在应用偏好设置中为用户提供了一个选项,即他们是希望应用是停靠类型应用还是代理类型。在主plist中将应用程序是代理(UIElement)设置为 YES 。您可以通过将应用程序激活策略设置为NSApplicationActivationPolicyRegular来在运行时更改应用程序类型。