【问题标题】:Cocoa - How to bring particular window to come in foreground from StatusMenuCocoa - 如何将特定窗口从 StatusMenu 带到前台
【发布时间】:2015-02-01 23:00:32
【问题描述】:

我正在开发一个 Mac 应用程序。我在 plist 中设置了Application is agent (UIElement) = YES,并且 App 有一个窗口 (比如说弹出窗口),它充当 StatusMenu 的自定义 PopOver。还有一个窗口(可以说是窗口 B) 应该在从我制作的 StatusMenu 中选择一个链接时打开,但我面临的问题如下:

  • 在应用程序启动时,当我打开状态菜单它还显示窗口 B,实际上不应该显示。窗口 B 在 Application Delegate 中分配和初始化。

  • 另一个问题是当通过从 StatusMenu 中选择窗口 B 使其可见时。它看起来不错,现在我切换到另一个应用程序,所以它的窗口被发送到背景很好,但是每当我点击状态菜单时,它会自动出现在前面。理想情况下它应该只打开弹出窗口。

【问题讨论】:

    标签: objective-c macos cocoa nswindow nsstatusitem


    【解决方案1】:
    • 窗口 B 正在打开,因为您可能忘记在界面构建器的属性检查器中取消选中“启动时可见”窗口属性

    • 您可以通过在调用窗口之前将 activateIgnoringOtherApps 设置为 YES 来解决第二个问题

      [[NSApplication sharedApplication] activateIgnoringOtherApps:YES];
      
      [windowB showWindow:nil];
      

    【讨论】:

      猜你喜欢
      • 2019-11-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多