ウィンドウメニューまたはアプリケーションメニューコマンドには、キーボードショートカット(アクセラレーター)を指定できます。キーまたはキーの組み合わせを押すと、データソースに指定された
select
イベントと
onSelect
イベントハンドラーが NativeMenuItem から送出されます。この動作は、ユーザーがメニューアイテムを選択した場合と同じです。
メニューのキーボードショートカットについて詳しくは、
ネイティブメニューコマンドと等価なキー(AIR)
を参照してください。
MenuBuilder フレームワークを使用して、データソースの対応するノードに、メニューアイテムのキーボードショートカットを指定できます。データソースに
keyEquivalent
フィールドがある場合、MenuBuilder フレームワークによってその値がキーボードショートカットとして使用されます。
キーボードショートカットに含める修飾キーを指定することもできます。修飾キーを追加するには、
altKey
フィールド、
ctrlKey
フィールド、
cmdKey
フィールドまたは
shiftKey
フィールドに
true
を指定します。指定したキーがキーボードショートカットに含まれます。デフォルトでは、Windows の場合は Ctrl キーが追加され、Mac OS X では Command キーが追加されます。このデフォルトの動作をオーバーライドするには、
defaultKeyEquivalentModifiers
フィールドを
false
に設定して含めます。
次の例は、キーボードショートカットを含む XML ベースのメニューデータソースのデータ構造で、「keyEquivalentMenu.xml」というファイルに含まれています。
<?xml version="1.0" encoding="utf-8" ?>
<root>
<menuitem label="File">
<menuitem label="New" keyEquivalent="n"/>
<menuitem label="Open" keyEquivalent="o"/>
<menuitem label="Save" keyEquivalent="s"/>
<menuitem label="Save As..." keyEquivalent="s" shiftKey="true"/>
<menuitem label="Close" keyEquivalent="w"/>
</menuitem>
<menuitem label="Edit">
<menuitem label="Cut" keyEquivalent="x"/>
<menuitem label="Copy" keyEquivalent="c"/>
<menuitem label="Paste" keyEquivalent="v"/>
</menuitem>
</root>
次の例のアプリケーションでは、「keyEquivalentMenu.xml」からメニュー構造を読み込み、それをアプリケーションのウィンドウメニューまたはアプリケーションメニューの構造として使用します。
<html>
<head>
<title>XML-based menu with key equivalents example</title>
<script type="text/javascript" src="AIRAliases.js"></script>
<script type="text/javascript" src="AIRMenuBuilder.js"></script>
</head>
<body>
<script type="text/javascript">
// Create a NativeMenu from "keyEquivalentMenu.xml" and set it
// as the application/window menu
var keyEquivMenu = air.ui.Menu.createFromXML("keyEquivalentMenu.xml");
air.ui.Menu.setAsMenu(keyEquivMenu);
</script>
</body>
</html>