ドックアイテムもキーウィンドウもメインメニューもないメニューバーにのみ配置される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];
この問題はおそらく、前面に表示するウィンドウがないことに関連していると思います。ここでストローを握っているような気がします。どんな助けでも大歓迎です。