Menu
クラス: Menu
ネイティブアプリケーションのメニューとコンテキストメニューを作成します。
プロセス: メイン
[Tips]あなたのアプリケーションにどうやってメニューを実装するかの詳細なガイド もご覧ください。
[!WARNING] Electron 組み込みのクラスはユーザコードでサブクラス化できません。 詳細については、FAQ をご参照ください。
new Menu()
新しいメニューを作成します
静的メソッド
Menu クラスは以下の静的メソッドを持ちます。
Menu.setApplicationMenu(menu)
menuMenu | null
macOS では、 menu をアプリケーションメニューとして設定します。 Windows と Linux では、 menu は各ウィンドウのトップメニューとして設定されます。
更に Windows と Linux では、最上位のアイテム名に & を使用して、アクセラレータを生成させるときに取得する文字を指定できます。 たとえば、ファイルメニューに &File を使用すると、その関連付けされたメニューを開く Alt-F アクセラレータが生成されます。 ボタンラベルでその指定をした文字には下線が引かれ、& 文字はボタンラベルに表示されません。
メニューアイテム名の & 文字をエスケープするには、& を続けて書きます。 例えば、&&File とするとボタンラベルに &File が表示されます。
null を渡すと、既定のメニューが表示されなくなります。 Windows と Linux では、さらにウィンドウからメニューバーを削除します。
[注]アプリがメニューを設定しない場合、自動でデフォルトメニューが作成されます。
File、Edit、View、Window、Helpなどの標準項目が含まれます。
Menu.getApplicationMenu()
戻り値 Menu | null - セットされていれば menu を、そうでなければ null を返します。
[注]返される
Menuインスタンスは、メニュー項目の動的な追加または削除ができません。 インスタンスプロパティ であれば、動的に変更ができます。
Menu.sendActionToFirstResponder(action) macOS
actionstring
action をアプリケーションの最初のレスポンダーに送信します。 macOS メニューの既定の動作をエミュレートするために使用されます。 通常は MenuItem の role プロパティを使用します。
macOS のネイティブの動作の詳細については、 macOS の Cocoa Event Handling Guide を参照してください。
Menu.buildFromTemplate(template)
template(MenuItemConstructorOptions | MenuItem)[]
戻り値 Menu
一般的に、template は MenuItem を構築するための options の配列です。 使用方法は上記を参照できます。
template の要素に他のフィールドを付けることもでき、それらは構築されたメニューアイテムのプロパティになります。
インスタンスメソッド
menu オブジェクトには以下のメソッドがあります。
menu.popup([options])
このメニューを BaseWindow 内のコンテキストメニューとしてポップアップします。
[!TIP] 詳細については、コンテキストメニュー のガイドをご参照ください。
menu.closePopup([window])
windowBaseWindow (任意) - 省略値はフォーカスされたウインドウです。
window 内のこのコンテキストメニューを閉じます。
menu.append(menuItem)
menuItemMenuItem
menu に menuItem を追加します。
menu.getMenuItemById(id)
idstring
戻り値 MenuItem | null - 指定した id のアイテム。
menu.insert(pos, menuItem)
posIntegermenuItemMenuItem
menu の pos の位置に menuItem を挿入します。
インスタンスイベント
new Menu で作成されたオブジェクトまたは Menu.buildFromTemplate によって返されたオブジェクトは、以下のイベントが発生します。
[!NOTE] いくつかのイベントは特定のオペレーティングシステムでのみ利用可能で、そのように注記がつけられています。
イベント: 'menu-will-show'
戻り値:
eventEvent
menu.popup() が呼ばれたときに発生します。
イベント: 'menu-will-close'
戻り値:
eventEvent
手動か menu.closePopup() でポップアップが閉じられたときに発生します。
インスタンスプロパティ
menu オブジェクトには更に以下のプロパティがあります。
menu.items
menu のアイテムが入った配列 MenuItem[]。
各 Menu は複数の MenuItem インスタンスで構成され、各 MenuItem は submenu プロパティに Menu をネストできます。