Objective c Cocoa-如何使特定窗口从状态菜单进入前台

Objective c Cocoa-如何使特定窗口从状态菜单进入前台,objective-c,macos,cocoa,nswindow,nsstatusitem,Objective C,Macos,Cocoa,Nswindow,Nsstatusitem,我正在开发一个Mac应用程序。我在plist中设置了应用程序是代理(UIElement)=YES,并且应用程序有一个窗口(比如弹出窗口),作为StatusMenu的自定义弹出窗口。还有一个窗口(比如说窗口B)应该在我从StatusMenu中选择链接时打开,但我面临的问题如下: 在应用程序启动时,当I打开状态菜单时,它也会显示实际上不应该显示的窗口B。窗口B在应用程序委托中分配和初始化 另一个问题是通过从StatusMenu中选择窗口B使其可见。它看起来不错,现在我切换到另一个应用程序,这样它的

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

  • 在应用程序启动时,当I打开状态菜单时,它也会显示实际上不应该显示的窗口B。窗口B在应用程序委托中分配和初始化

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

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

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

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