常に実行する必要があるアプリがあります (ユーザーがこれに同意した場合)。
ユーザーがアプリを終了すると、フォアグラウンド アプリを LSUIElement に変換します (アプリにはメニュー バー アイコンしかなく、ドック アイコンとメニューが消えます)。
メニュー項目にオプションがあり、正常に機能し、LSUIElement をフォアグラウンド アプリに変換します (関数[NSApp setActivationPolicy:NSApplicationActivationPolicyRegular]
とを使用します[NSApp activateIgnoringOtherApps:YES]
)。
ユーザーがアプリをダブルクリックすると、私の問題が発生します。[NSApp setActivationPolicy:NSApplicationActivationPolicyRegular]
私はデリゲートメソッドで再び使用しapplicationWillUnhide:(NSNotification *)notification
ますが、表示されないメニューを除いてすべてうまくいきます。別のアプリに移動してから戻ってきた場合、メニューが表示されます。いろいろな方法を試してみましたが、良い方法が見つかりませんでした。
私が知りたいのは、ユーザーがアプリをダブルクリックしたときに呼び出されるデリゲート メソッド、またはその瞬間に呼び出される関数です。関数で を使用するのは遅すぎるNSApplication
と思うからです。setActivationPolicy:
applicationWillUnhide