メニューコマンドにキーボードショートカット(アクセラレーター)を割り当てることができます。キーまたはキーの組み合わせが押されると、メニューアイテムから、登録されているすべてのリスナーに
select
イベントが送出されます。アイテムが格納されるメニューは、コマンドが呼び出されるアプリケーションまたはアクティブなウィンドウのメニューの一部である必要があります。
キーボードショートカットは 2 つの部分から構成されます。主キーを表すストリングと、一緒に押される必要がある修飾キーの配列です。主キーを割り当てるには、メニューアイテムの
keyEquivalent
プロパティに、そのキーの 1 文字のストリングを設定します。大文字を使用した場合、修飾キーの配列に Shift キーが自動的に追加されます。
Mac OS X では、デフォルトの修飾キーは Command キー(
Keyboard.COMMAND
)です。Windows および Linux では、Ctrl キー(
Keyboard.CONTROL
)です。これらのデフォルトのキーは、修飾キーの配列に自動的に追加されます。別の修飾キーを割り当てるには、そのキーコードを含む新しい配列を
keyEquivalentModifiers
プロパティに割り当てます。デフォルトの配列は上書きされます。デフォルトの修飾キーを使用するか独自の修飾キーの配列を割り当てるかに関係なく、
keyEquivalent
プロパティに割り当てたストリングが大文字の場合は Shift キーが追加されます。修飾キーに使用するキーコードの定数は、Keyboard クラスで定義されています。
割り当てられたキーボードショートカットのストリングは、自動的にメニューアイテム名の横に表示されます。形式は、ユーザーのオペレーティングシステムおよびシステムの環境設定によって異なります。
注意:
Windows オペレーティングシステムでキー修飾の配列に
Keyboard.COMMAND
値を割り当てた場合、メニューにキーボードショートカットは表示されません。ただし、そのメニューコマンドをアクティブにするには Ctrl キーを使用する必要があります。
次の例では、メニューアイテムのキーボードショートカットとして
Ctrl+Shift+G
を割り当てます。
var item = new air.NativeMenuItem("Ungroup");
item.keyEquivalent = "G";
次の例では、修飾キーの配列を直接設定することにより、キーボードショートカットとして
Ctrl+Shift+G
を割り当てます。
var item = new air.NativeMenuItem("Ungroup");
item.keyEquivalent = "G";
item.keyEquivalentModifiers = [air.Keyboard.CONTROL];
注意:
キーボードショートカットでトリガーできるのは、アプリケーションメニューまたはウィンドウメニューのみです。コンテキストメニューまたはポップアップメニューにキーボードショートカットを追加した場合、メニューラベルにはキーボードショートカットが表示されますが、関連付けられたメニューコマンドを呼び出すことはできません。