5

実行時にウィンドウを開かず、ホット キーからアクティブ化されるユーティリティを作成しようとしています。現在、Cocoa にはそのための関数がなく、非推奨の Carbon 関数を使用する必要があることを読みました。

Cocoa でグローバル ホット キーを使用する方法はありませんか? Cocoa がそのための機能を導入するのを待つか、Cocoa に同様の機能が導入されなくなるまでカーボン機能を使用する必要がありますか?

4

2 に答える 2

8

Carbon Event Manager のRegisterEventHotKey機能を使用します。この関数は 64 ビットでサポートされています(「64 ビットでは使用できません」という可用性の注記がないことに注意してください)。

逆に、Snow Leopard の NSEvent の新しいaddGlobalMonitorForEventsMatchingMask:handler:メソッドは、ホットキーを実装する最も簡単な方法ではありません。1 つには、ユーザーが補助デバイスにアクセスできる必要があります。RegisterEventHotKeyさらに、ユーザーが登録した特定のキーを押したときにのみコールバック関数を呼び出すシステムとは異なり、すべてのイベントを自分で調べる必要があります。

于 2009-12-16T15:55:37.110 に答える
2

Shortcut Recorder ( http://wafflesoftware.net/shortcut/ ) を見てみましょう。これはグローバル ホットキーに Carbon Event Manager を使用するフレームワークであり、ユーザーを変更してホットキーを変更することもできます (これが必要な場合)。

そして、それを実装する方法については、このプロジェクト/コードを参照してください: http://github.com/sdegutis/SDGlobalShortcuts .

于 2009-12-16T16:32:54.273 に答える