【问题标题】:Make Cocoa app stay on top of fullscreen apps让 Cocoa 应用保持在全屏应用之上
【发布时间】:2012-01-24 22:08:15
【问题描述】:

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

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

但是,我也想在 Dock 中有一个图标。如果 Application is agent (UIElement) 设置为 NO,则 showMainWindow 会导致应用跳转到不同的空间,而不是出现在活动全屏应用的顶部。有解决办法吗?

【问题讨论】:

    标签: macos cocoa fullscreen


    【解决方案1】:

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

    经过更多研究后发现,没有办法绕过它。这正是 OS X 的工作方式。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-12-03
      • 1970-01-01
      • 1970-01-01
      • 2013-06-12
      • 1970-01-01
      • 2018-11-09
      • 2011-09-19
      • 1970-01-01
      相关资源
      最近更新 更多