Cocoa将焦点转移到我的应用程序

Mar*_* S. 8 cocoa objective-c

我有一个状态栏应用程序(在系统顶部栏中运行的应用程序).当我点击状态栏中的图标时,会弹出一个菜单,它有一个项目来配置我的应用程序.当我按下这个项目时,会显示主应用程序窗口[wndMain makeKeyAndOrderFront:self]; 问题是单击状态栏图标不会激活应用程序,如果此时其他应用程序处于活动状态,则主窗口将在该活动应用程序下方打开,并且将失焦.如何在点击状态栏图标时以编程方式将焦点切换到我的应用程序,以便设置窗口始终在其他窗口的顶部打开并且可以聚焦并准备好用户输入?

谢谢

Pet*_*sey 17

向共享NSApplication对象发送activateIgnoringOtherApps:消息.


6 1*_*6 1 7

NSApplication *myApp = [NSApplication sharedApplication];
[myApp activateIgnoringOtherApps:YES];
[self.window orderFrontRegardless];
Run Code Online (Sandbox Code Playgroud)

您可以使用上面的代码来解决问题.