メニューのルートとして機能する NativeMenu オブジェクトを作成するには、NativeMenu コンストラクターを使用します。
var root = new air.NativeMenu();
アプリケーションメニューおよびウィンドウメニューでは、ルートメニューはメニューバーを表し、サブメニューを開くアイテムのみが格納されます。コンテキストメニューおよびポップアップメニューにはメニューバーがないため、ルートメニューにコマンドやセパレーター線、およびサブメニューを含めることはできません。
メニューを作成したら、メニューアイテムを追加できます。アイテムは、追加した順序で表示されます。アイテムを特定のインデックスに表示するには、メニューオブジェクトの
addItemAt()
メソッドを使用します。
以降の節で示すように、メニューはアプリケーション、ウィンドウまたはアイコンのいずれかのメニューとして割り当てるか、ポップアップメニューとして表示します。
アプリケーションメニューの設定またはウィンドウメニューの設定
コードには、アプリケーションメニュー(Mac OS でサポート)とウィンドウメニュー(その他のオペレーティングシステムでサポート)の両方を含めることが重要です。
var root = new air.NativeMenu();
if (air.NativeApplication.supportsMenu)
{
air.NativeApplication.nativeApplication.menu = root;
}
else if (NativeWindow.supportsMenu)
{
nativeWindow.menu = root;
}
注意:
Mac OS では、すべてのアプリケーション用の標準アイテムを含むメニューを定義します。新しい NativeMenu オブジェクトを NativeApplication オブジェクトの
menu
プロパティに割り当てると、標準のメニューが置き換えられます。置き換えずに標準のメニューを使用することもできます。
Adobe Flex の FlexNativeMenu クラスを使用すると、様々なプラットフォームで機能するメニューを簡単に作成できます。Flex フレームワークを使用している場合は、NativeMenu クラスではなく FlexNativeMenu クラスを使用します。
ドックアイコンメニューの設定またはシステムトレイアイコンメニューの設定
air.NativeApplication.nativeApplication.icon.menu = root;
注意:
Mac OS X では、アプリケーションのドックアイコン用に標準のメニューが定義されています。新しい NativeMenu を DockIcon オブジェクトの menu プロパティに割り当てると、そのメニューに含まれるアイテムが標準のアイテムの上に表示されます。標準のメニューアイテムの削除、アクセスまたは変更を行うことはできません。
ポップアップとしてのメニューの表示
root.display(window.nativeWindow.stage, x, y);