13

システムステータスバーにあるNSStatusBarココアアプリケーションを作成しました。

ホットキーを割り当てて、押すとアプリケーションが切り替わり、メニューが表示されるようにします。

これは可能ですか?、検索と実験で、アプリケーションがバックグラウンドにあるときに押すことができるグローバルホットキーを割り当てるいくつかの異なる方法を見つけましたが、問題のあるメニューを表示する方法を見つけることができません。

これは可能ですか?、グローバルホットキーを割り当てる方法が最善だと思う人がいたら、投稿してください。

ありがとう。


私が見つけたホットキーチュートリアルの1つは、興味のある人のためにhttp://dbachrach.com/blog/2005/11/program-global-hotkeys-in-cocoa-easily/にありました。

4

2 に答える 2

16

NSEvent10.6以降をターゲットにしている場合は、グローバルホットキーを実行できる新しいAPIがいくつかあります。詳細については、この素晴らしいブログ投稿をチェックしてください:http: //cocoakids.net/global-hotkeys-in-cocoa-on-snow-leopard

編集(かなり後)

自分のホーンを少し宣伝する:PTHotKeyや他のライブラリのようなものを期待どおりに動作させることができなかったので、結局あきらめて自分のHotKeyラッパーを作成しました。非常にシンプルなAPI(キーコード、修飾子、ターゲット、アクションを指定)があり、10.6のブロックなどの楽しいものもサポートしています。ここからソースをダウンロードできます:http: //github.com/davedelong/DDHotKey

于 2009-11-01T19:28:29.637 に答える
10

実際のホットキーAPIがありますが、これはSnow Leopardにまだ存在し、64ビットで使用できます。これは、本質的にCGEventTapsの単なるブロックベースのラッパーであるNSEventメソッドとは異なり、この目的のために特別に設計されています。

違いは、NSEventメソッド(または直接CGEventTaps)を使用すると、着信するすべてのイベントを確認できるのに対し、ホットキーAPIは、ユーザーがホットキーを押したときにのみ関数を呼び出すことです

于 2009-11-01T19:47:07.337 に答える