2

私は現在、カスタム ステータス アイテム ビューと NSPopover を使用してコンテンツを表示する OSX メニューバー アプリに取り組んでいます。

ポップオーバーはウィンドウのようにスペースを移動しないため、またはミッションコントローラーがアクティブ化されたときなど、スペースが変更されたときのように意味のあるときにそれを却下しようとしています。

現在、ミッション コントロール中は、このスクリーンショットに示すように、NSPopover が一番上に表示されます。

現在NSEvent addGlobalMonitorForEventsMatchingMask:、いくつかのマウス イベント マスクを使用していますが、問題なく動作しますが、必要なすべてのイベントをカバーしていません。

では、ミッション コントロールを開く、スペースを変更するなどの主要な OS イベントがいつ発生したかを検出する方法はありますか?

どんな助けでも大歓迎です。

4

1 に答える 1

2

NSWorkspaceに登録すると、スペースの変更に関する通知を受け取ることができますNSWorkspaceActiveSpaceDidChangeNotification。Mission Control に関する通知自体はありませんが、NSWorkspaceDidActivateApplicationNotification必要なものを判断するために他の通知を使用できるかどうかを調べることができます。

HTH

于 2014-03-19T18:50:58.307 に答える