我正在构建一个 Mac 应用程序,它只位于菜单栏中,没有停靠项,没有键窗口,也没有主菜单(它LSUIElement
在 info.plist 中设置为YES
)。正如我所料,当我第一次启动该应用程序时,applicationDidBecomeActive:
它会被调用。但是,一旦另一个应用程序获得焦点,applicationDidBecomeActive:
就再也不会被调用。
这可以防止我的应用程序中的文本字段成为第一响应者。当我第一次打开应用程序时,文本字段是可编辑的:
但是在另一个应用程序进入前台后,文本字段不可编辑:
我试过的:
打开菜单时,在的委托menuWillOpen:
上调用。NSMenu
我尝试放置以下内容但没有成功:
[NSApp unhide];
[NSApp arrangeInFront:self];
[NSApp activateIgnoringOtherApps:YES];
[NSApp requestUserAttention:NSCriticalRequest];
[[NSRunningApplication currentApplication] activateWithOptions:NSApplicationActivateIgnoringOtherApps];
[[NSRunningApplication currentApplication] unhide];
我认为这个问题可能与没有任何窗户可以放在前面有关。我觉得我在这里抓住了稻草。任何帮助将不胜感激。