Cocoa - 如何使特定窗口从StatusMenu进入前台

时间:2014-12-04 06:31:45

标签: objective-c macos cocoa nswindow nsstatusitem

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

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

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

1 个答案:

答案 0 :(得分:1)

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

enter image description here

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

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