メインコンテンツへ飛ぶ

Menu

クラス: Menu

ネイティブアプリケーションのメニューとコンテキストメニューを作成します。

プロセス: メイン

[Tips]あなたのアプリケーションにどうやってメニューを実装するかの詳細なガイド もご覧ください。

[!WARNING] Electron 組み込みのクラスはユーザコードでサブクラス化できません。 詳細については、FAQ をご参照ください。

new Menu()

新しいメニューを作成します

静的メソッド

Menu クラスは以下の静的メソッドを持ちます。

  • menu Menu | null

macOS では、 menu をアプリケーションメニューとして設定します。 Windows と Linux では、 menu は各ウィンドウのトップメニューとして設定されます。

更に Windows と Linux では、最上位のアイテム名に & を使用して、アクセラレータを生成させるときに取得する文字を指定できます。 たとえば、ファイルメニューに &File を使用すると、その関連付けされたメニューを開く Alt-F アクセラレータが生成されます。 ボタンラベルでその指定をした文字には下線が引かれ、& 文字はボタンラベルに表示されません。

メニューアイテム名の & 文字をエスケープするには、& を続けて書きます。 例えば、&&File とするとボタンラベルに &File が表示されます。

null を渡すと、既定のメニューが表示されなくなります。 Windows と Linux では、さらにウィンドウからメニューバーを削除します。

[注]アプリがメニューを設定しない場合、自動でデフォルトメニューが作成されます。 FileEditViewWindowHelp などの標準項目が含まれます。

戻り値 Menu | null - セットされていれば menu を、そうでなければ null を返します。

[注]返される Menu インスタンスは、メニュー項目の動的な追加または削除ができません。 インスタンスプロパティ であれば、動的に変更ができます。

  • action string

action をアプリケーションの最初のレスポンダーに送信します。 macOS メニューの既定の動作をエミュレートするために使用されます。 通常は MenuItemrole プロパティを使用します。

macOS のネイティブの動作の詳細については、 macOS の Cocoa Event Handling Guide を参照してください。

  • template (MenuItemConstructorOptions | MenuItem)[]

戻り値 Menu

一般的に、templateMenuItem を構築するための options の配列です。 使用方法は上記を参照できます。

template の要素に他のフィールドを付けることもでき、それらは構築されたメニューアイテムのプロパティになります。

インスタンスメソッド

menu オブジェクトには以下のメソッドがあります。

  • options Object (任意)
    • window BaseWindow (任意) - 省略値はフォーカスされたウインドウです。
    • frame WebFrameMain (任意) - macOS の作文ツールなどといった特定の OS レベルの機能を正しく機能させたい場合は、関連するフレームを入力してください。 通常、これは WebContents の context-menu イベント からの params.frame であるか、WebContents の focusedFrame プロパティ であるべきです。
    • x number (任意) - 既定ではマウスカーソルの現在位置です。 y が宣言されている場合は宣言する必要があります。
    • y number (任意) - 既定ではマウスカーソルの現在位置です。 x が宣言されている場合は宣言する必要があります。
    • positioningItem number (任意) macOS - マウスカーソルの位置に配置するメニューアイテムのインデックス。 既定値は -1 です。
    • sourceType string (任意) Windows Linux - これは、context-menu イベントによって提供される menuSourceType と対応しなければなりません。 この値の手動設定は非推奨です。他の API から受け取った値を与えるか、undefined のままにしておいてください。 none, mouse, keyboard, touch, touchMenu, longPress, longTap, touchHandle, stylus, adjustSelection, adjustSelectionReset のいずれかになります。
    • callback Function (任意) - メニューが閉じたしたときに呼ばれます。

このメニューを BaseWindow 内のコンテキストメニューとしてポップアップします。

[!TIP] 詳細については、コンテキストメニュー のガイドをご参照ください。

  • window BaseWindow (任意) - 省略値はフォーカスされたウインドウです。

window 内のこのコンテキストメニューを閉じます。

menu に menuItem を追加します。

  • id string

戻り値 MenuItem | null - 指定した id のアイテム。

menu の pos の位置に menuItem を挿入します。

インスタンスイベント

new Menu で作成されたオブジェクトまたは Menu.buildFromTemplate によって返されたオブジェクトは、以下のイベントが発生します。

[!NOTE] いくつかのイベントは特定のオペレーティングシステムでのみ利用可能で、そのように注記がつけられています。

イベント: 'menu-will-show'

戻り値:

  • event Event

menu.popup() が呼ばれたときに発生します。

イベント: 'menu-will-close'

戻り値:

  • event Event

手動か menu.closePopup() でポップアップが閉じられたときに発生します。

インスタンスプロパティ

menu オブジェクトには更に以下のプロパティがあります。

menu のアイテムが入った配列 MenuItem[]

Menu は複数の MenuItem インスタンスで構成され、各 MenuItemsubmenu プロパティに Menu をネストできます。