"应用程序作为代理"中的警报窗口未获得焦点

jan*_*neh 3 macos xcode cocoa alert objective-c

更新:我的应用程序作为代理程序运行,我发现当我关闭它时,警报窗口正常关注.任何想法如何解决?

我首次在AppController的awakeFromNib中运行应用程序时显示警报窗口.当我在Xcode中运行它时,它作为一个关键窗口运行,但是当我构建应用程序时,它没有得到关注.为什么?我该如何关注它?

AppController.m

NSInteger kbSetup = NSRunAlertPanel(kbLetsStart, kbLetsStartDscr, @"OK", @"Maybe Later", nil);
kbSetup == 1 ? [self showPreferencesPanel:nil] : [NSApp performSelector:@selector(terminate:) withObject:nil afterDelay:0.0];
Run Code Online (Sandbox Code Playgroud)

即使我创建了一个NSAlert的实例,然后这样做[[alert window] makeKeyAndOrderFront:self],它仍然不是关键......

jan*_*neh 6

好的,解决方案是[NSApp activateIgnoringOtherApps:YES];在打开警报之前调用.卫生署.