MenuBuilder フレームワークを使用してアプリケーションメニューまたはウィンドウメニューを作成すると、メニューデータ構造の最上位のオブジェクトまたはノードはメニューバーに表示されるアイテムに対応します。最上位のアイテム内にネストされたアイテムによって、各メニューコマンドが定義されます。それらのメニューアイテム内に他のアイテムが含まれる場合もあります。その場合、メニューアイテムはコマンドではなくサブメニューになります。ユーザーがメニューアイテムを選択すると、その中のメニューアイテムが展開されます。
呼び出しが実行されるウィンドウのアプリケーションメニューまたはウィンドウメニューとしてメニューを設定するには、
Menu.setAsMenu()
メソッドを使用します。
setAsMenu()
メソッドは、NativeMenu オブジェクトをパラメーターとして使用します。次の例では、XML ファイルを読み込み、生成されたメニューをアプリケーションメニューまたはウィンドウメニューとして設定します。
var windowMenu = air.ui.Menu.createFromXML("windowMenu.xml");
air.ui.Menu.setAsMenu(windowMenu);
ウィンドウメニューをサポートするオペレーティングシステムでは、
setAsMenu()
呼び出しにより、現在のウィンドウ(
window.nativeWindow
として示されるウィンドウ)のウィンドウメニューとしてメニューが設定されます。アプリケーションメニューをサポートするオペレーティングシステムでは、アプリケーションメニューとしてメニューが使用されます。
Mac OS X では、標準メニューのセットがデフォルトのアプリケーションメニューとして定義され、同じメニューアイテムのセットが各アプリケーションで使用されます。これらのメニューに含まれるアプリケーションメニューの名前は、アプリケーション名、編集メニューおよびウィンドウメニューと一致します。
Menu.setAsMenu()
メソッドを呼び出して NativeMenu オブジェクトをアプリケーションメニューとして割り当てると、NativeMenu 内のアイテムが編集メニューとウィンドウメニューの間の標準メニュー構造内に追加されます。標準メニューは変更または置換されません。
必要に応じて、標準メニューに追加せずに標準メニューを置換することができます。既存のメニューを置き換えるには、次の例に示すように、二番目の引数に値
true
を設定して
setAsMenu()
呼び出しに渡します。
air.ui.Menu.setAsMenu(windowMenu, true);