私はメニューバーで実行されるステータスバーアプリケーションを持っています。したがって、をinfo.plst
のtrue
に設定しました。ドックアイコンがなく、アプリケーション用のメニューバーも表示されません。macOSメニューバーアプリケーション:メインメニューが表示されない
しかし、ユーザーがステータスバーメニューから開くことができる設定ウィンドウもあります。ここで私はそれを開く方法です:
if (!NSApp.setActivationPolicy(.regular)) {
print("unable to set regular activation policy")
}
NSApp.activate(ignoringOtherApps: true)
if let window = preferencesWindowController.window {
window.makeKeyAndOrderFront(nil)
}
ウィンドウが期待通りに現れたが、ファイルとアプリケーションのメインメニューバー、編集というように、表示されません。私が別のアプリをクリックして私のアプリに戻った場合にのみ、メニューバーが表示されます。
私はfalse
にinfo.plst
の値を変更し、applicationDidFinishLaunching()
でNSApp.setActivationPolicy(.accessory)
を使用する場合、それは同じ結果を持っていること、気づきました。しかし、applicationDidFinishLaunching()
が呼び出された後、私がNSApp.setActivationPolicy(.accessory)
に数ミリ秒タイマーをかけて呼び出すと、それは動作し、メインメニューが期待通りに表示されています。しかしこれは、アプリアイコンがDockに数秒間ポップアップする(タイマーが起動されるまで)という副作用があります。これは素晴らしいユーザーエクスペリエンスではありません。
他に誰が私が試みることができるアイデアはありますか?アクティブなアプリケーションを切り替えると、私はコードでやっていないのですが、何が起こっていますか?
私はMacOSの10.12.2のバージョン8.2.1(8C1002)(16C67)
感謝を使用しています!私は別のアプリをクリックして、私のアプリに戻ってくる場合は、メニューバーが表示されている、質問に書いたように
:
"期待どおりのウィンドウが表示されます。"また、ウィンドウが最初のレスポンダになり、バックグラウンドなどのように見えないと仮定します。正しい? – idmean
それは正しいです。 – Daniel
私のアプリでもこの問題に遭遇しました。あなたは一人じゃない :) – Bob