メインコンテンツへ飛ぶ

MenuItem

Class: MenuItem

ネイティブアプリケーションメニューとコンテキストメニューに項目を追加します。

プロセス: メイン

サンプルについては Menu をご参照ください。

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

new MenuItem(options)

  • options Object
    • click Function (任意) - メニューアイテムがクリックされたとき、 click(menuItem, window, event) で呼び出されます。
      • menuItem MenuItem
      • window BaseWindow | undefined - ウインドウが開かれていないときは undefined になります。
      • event KeyboardEvent
    • role string (任意) - undo, redo, cut, copy, paste, pasteAndMatchStyle, delete, selectAll, reload, forceReload, toggleDevTools, resetZoom, zoomIn, zoomOut, toggleSpellChecker, togglefullscreen, window, minimize, close, help, about, services, hide, hideOthers, unhide, quit, showSubstitutions, toggleSmartQuotes, toggleSmartDashes, toggleTextReplacement, startSpeaking, stopSpeaking, zoom, front, appMenu, fileMenu, editMenu, viewMenu, shareMenu, recentDocuments, toggleTabBar, selectNextTab, selectPreviousTab, showAllTabs, mergeAllWindows, clearRecentDocuments, moveTabToNewWindow, windowMenu のいずれかにできます。メニューアイテムのアクションを定義します。指定すると click プロパティは無視されます。 ロール もご参照ください。
    • type string (任意)
      • normal
      • separator
      • submenu
      • チェックボックス
      • radio
      • header - macOS 14 以降でのみ利用できます。
      • palette - macOS 14 以降でのみ利用できます。
    • label string (任意)
    • sublabel string (任意) macOS - macOS >= 14.4 で利用できます。
    • toolTip string (任意) macOS - このメニューアイテムに浮かび上がるテキスト。
    • accelerator string (任意) - アクセラレータ の文字列。
    • icon (NativeImage | string) (任意) - NativeImage またはアイコンへのファイルパスにできます。
    • enabled boolean (任意) - もし false なら、メニューアイテムは灰色になりクリックできません。
    • acceleratorWorksWhenHidden boolean (任意) macOS - 省略値は true です。false のときは、アイテムが表示されていない場合にアクセラレータがアイテムをトリガーするのを防ぎます。
    • visible boolean (任意) - もし false なら、メニューアイテムは全く見えなくなります。
    • checked boolean (任意) - type が checkboxradio のメニューアイテムに対しては指定する必要があります。
    • registerAccelerator boolean (任意) Linux Windows - false の場合、アクセラレータはシステムに登録されませんが、それでも表示はされます。 省略値は true です。
    • sharingItem SharingItem (任意) macOS - roleshareMenu の場合に共有するアイテムです。
    • submenu (MenuItemConstructorOptions[] | Menu) (任意) - submenu 型メニューアイテムを指定する必要があります。 もし submenu を指定した場合、type: 'submenu' は省略できます。 値が Menu でない場合は、Menu.buildFromTemplate を用いて自動的に変換されます。
    • id string (任意) - 単一のメニュー内で一意。 宣言されている場合は、位置属性によってこのアイテムへの参照として使用できます。
    • before string[] (任意) - 指定した ID の前にこのアイテムを挿入します。 参照された項目が存在しない場合、アイテムはメニューの最後に挿入されます。 また、与えられたメニューアイテムをそのアイテムと同じ「グループ」に配置する必要があることを意味します。
    • after string[] (任意) - 指定した ID の後にこのアイテムを挿入します。 参照された項目が存在しない場合、アイテムはメニューの最後に挿入されます。
    • beforeGroupContaining string[] (任意) - 単一のコンテキストメニューで、指定された ID のアイテムを含むグループの前に、そのグループの配置を宣言する手段を提供します。
    • afterGroupContaining string[] (任意) - 単一のコンテキストメニューで、指定された ID のアイテムを含むグループの後に、そのグループの配置を宣言する手段を提供します。

[!NOTE] Windows と Linux でアイテムが非表示になっている場合のアクセラレータは常に機能するため、acceleratorWorksWhenHidden は macOS 専用として指定されています。 これはネイティブの macOS 開発では可能なので、オプションを無効にするオプションをユーザーに提供するためにユーザーに公開されます。

インスタンスプロパティ

MenuItem のインスタンスには以下のプロパティがあります。

string 型で、アイテムの一意な ID を示します。 このプロパティは動的に変更できます。

そのアイテムに表示されるラベルを示す string

MenuItem がクリックイベントを受け取った時に発火される Function。 これは menuItem.click(event, focusedWindow, focusedWebContents) で呼び出されます。

存在する場合、メニューアイテムのサブメニューを格納する Menu (任意)。

string 型で、アイテムの種類を示します。 normal, separator, submenu, checkbox, radio, header, palette のいずれかになります。

note

headerpalette macOS 14 以降でのみ利用できます。

セットされている場合、アイテムの役割を示す string (任意)。 undo, redo, cut, copy, paste, pasteAndMatchStyle, delete, selectAll, reload, forceReload, toggleDevTools, resetZoom, zoomIn, zoomOut, toggleSpellChecker, togglefullscreen, window, minimize, close, help, about, services, hide, hideOthers, unhide, quit, startSpeaking, stopSpeaking, zoom, front, appMenu, fileMenu, editMenu, viewMenu, shareMenu, recentDocuments, toggleTabBar, selectNextTab, selectPreviousTab, showAllTabs, mergeAllWindows, clearRecentDocuments, moveTabToNewWindow, windowMenu のいずれかにできます。

Accelerator (任意) 型で、セットされているならばそのアイテムのアクセラレータになります。

Accelerator | null 型で、メニューアイテムの ユーザーが割り当てたアクセラレータ を表します。

[!NOTE] このプロパティは MenuItemMenu に追加された後にのみ初期化されます。 Menu.buildFromTemplate または Menu.append()/insert() を介してください。 初期化前にアクセスすると null を返します。

セットされている場合、アイテムのアイコンを示す NativeImage | string (任意)。

そのアイテムのサブラベルを示す string

そのアイテムに浮かび上がるテキストを示す string

boolean 型で、アイテムが有効かどうかを示します。 このプロパティは動的に変更できます。

boolean 型で、アイテムが見えるかどうかを示します。 このプロパティは動的に変更できます。

boolean 型で、アイテムがチェック済みかどうかを示します。 このプロパティは動的に変更できます。

checkbox メニューアイテムは、選択された時に checked プロパティをオンかオフにトグル切り替えします。

radio メニューアイテムは、クリックされると checked がオンになり、同じメニュー内の隣接するアイテムすべてのこのプロパティをオフにします。

更なる動作は、click 関数の追加で可能です。

boolean 型で、アクセラレータをシステムに登録する必要があるのか、ただ表示するだけなのかを示します。

このプロパティは動的に変更できます。

SharingItem 型で、roleshareMenu の場合に共有するアイテムを示します。

このプロパティは動的に変更できます。

アイテムの一意な連番 id を示す number

そのアイテムが属する Menu