Class: MenuItem
Class: MenuItem
ネイティブアプリケーションメニューとコンテキストメニューに項目を追加します。
Process: Main
See Menu for examples.
[!WARNING] Electron's built-in classes cannot be subclassed in user code. For more information, see the FAQ.
new MenuItem(options)
acceleratorWorksWhenHidden is specified as being macOS-only because accelerators always work when items are hidden on Windows and Linux. これはネイティブの macOS 開発では可能なので、オプションを無効にするオプションをユーザーに提供するためにユーザーに公開されます。
役割 (roles)
Roles を使用すると、メニューアイテムに定義済みの動作を持たせることができます。
click 関数で手動で動作を実装しようとするのではなく、標準の role に一致するメニューアイテムに対して role を指定することが最善です。 組み込み role の動作は最適なネイティブの操作感を得られます。
roleを使用する場合、label と accelerator の値は任意で、各プラットフォームに最適な値がデフォルトになっています。
すべてのメニューアイテムは、role、label、セパレータの場合は type のいずれかを保持する必要があります。
role プロパティは、以下の値を持つことができます。
undoabout- ネイティブのこの App についてのパネル (専用のパネルを提供しない、Window 上のカスタムメッセージボックス) をトリガーします。redocutcopypastepasteAndMatchStyleselectAlldeleteminimize- 現在のウィンドウを最小化する。close- 現在のウィンドウを閉じる。quit- アプリケーションを終了する。reload- 現在のウィンドウをリロードする。forceReload- キャッシュを無視して現在のウィンドウをリロードする。toggleDevTools- 現在のウィンドウの開発者向けツールのトグル切り替えをする。togglefullscreen- 現在のウインドウの全画面モードのトグル切り替え.resetZoom- フォーカス中のページのズームレベルを元のサイズにリセットする。zoomIn- フォーカス中のページを 10% 拡大する。zoomOut- フォーカス中のページを 10% 縮小する。toggleSpellChecker- 組み込みスペルチェッカーを有効/無効にします。fileMenu- デフォルト"ファイル" メニュー全体 (Close / Quit)editMenu- デフォルトの"編集"メニュー全体 (元に戻す、コピー、等)。viewMenu- デフォルトの"表示"メニュー全体 (リロード、開発ツールON/OFF等)windowMenu- デフォルトの"ウインドウ"メニュー全体 (最小化、ズーム等)。
以下は macOS で有効な追加の role です。
appMenu- デフォルトの"App"メニュー全体 (Electronについて、サービス等)hide-hideアクションに割り当てる。hideOthers-hideOtherApplicationsアクションに割り当てる。unhide-unhideAllApplicationsアクションに割り当てる。showSubstitutions-orderFrontSubstitutionsPanelアクションに割り当てる。toggleSmartQuotes-toggleAutomaticQuoteSubstitutionアクションに割り当てる。toggleSmartDashes-toggleAutomaticDashSubstitutionアクションに割り当てる。toggleTextReplacement-toggleAutomaticTextReplacementアクションに割り当てる。startSpeaking-startSpeakingアクションに割り当てる。stopSpeaking-stopSpeakingアクションに割り当てる。front-arrangeInFrontアクションに割り当てる。zoom-performZoomアクションに割り当てる。toggleTabBar-toggleTabBarアクションに割り当てる。selectNextTab-selectNextTabアクションに割り当てる。selectPreviousTab-selectPreviousTabアクションに割り当てる。showAllTabs-showAllTabsアクションに割り当てる。mergeAllWindows-mergeAllWindowsアクションに割り当てる。moveTabToNewWindow-moveTabToNewWindowアクションに割り当てる。window- "ウインドウ"サブメニュー。help- "ヘルプ"サブメニュー。services- "サービス" メニューのサブメニュー。 これはこのアプリケーションのメニューにのみ使うことを意図しており、macOS アプリのコンテキストメニューで使用される "サービス" サブメニューと同じでは ありません。そのような "サービス" サブメニューは Electron では実装されていません。recentDocuments- "最近使った項目を開く"サブメニュー。clearRecentDocuments-clearRecentDocumentsアクションに割り当てる。shareMenu- このサブメニューは 共有メニュー です。sharingItemプロパティは、共有アイテムを示すためにも設定する必要があります。
macOS の role を指定するとき、label と accelerator がメニューアイテムに影響を与える唯一のオプションです。 ほかのすべてのオプションは無視されます。 小文字の role、toggledevtools などもまだサポートしています。
[!NOTE] The
enabledandvisibilityproperties are not available for top-level menu items in the tray on macOS.
インスタンスプロパティ
MenuItem のインスタンスには以下のプロパティがあります。
menuItem.id
アイテムの一意な id を示す string。このプロパティは動的に変更できます。
menuItem.label
そのアイテムに表示されるラベルを示す string。
menuItem.click
MenuItem がクリックイベントを受け取った時に発火される Function。 これは menuItem.click(event, focusedWindow, focusedWebContents) で呼び出されます。
eventKeyboardEventfocusedWindowBaseWindowfocusedWebContentsWebContents
menuItem.submenu
存在する場合、メニューアイテムのサブメニューを格納する Menu (任意)。
menuItem.type
そのアイテムの種類を示す string。 Can be normal, separator, submenu, checkbox, radio, header or palette.
header and palette are only available on macOS 14 and up.
menuItem.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, startSpeaking, stopSpeaking, zoom, front, appMenu, fileMenu, editMenu, viewMenu, shareMenu, recentDocuments, toggleTabBar, selectNextTab, selectPreviousTab, showAllTabs, mergeAllWindows, clearRecentDocuments, moveTabToNewWindow, windowMenu のいずれかにできます。
menuItem.accelerator
Accelerator (任意) 型で、セットされているならばそのアイテムのアクセラレータになります。
menuItem.userAccelerator Readonly macOS
Accelerator | null 型で、メニューアイテムの ユーザーが割り当てたアクセラレータ を表します。
[!NOTE] This property is only initialized after the
MenuItemhas been added to aMenu.Menu.buildFromTemplateまたはMenu.append()/insert()を介してください。 初期化前にアクセスするとnullを返します。
menuItem.icon
セットされている場合、アイテムのアイコンを示す NativeImage | string (任意)。
menuItem.sublabel
そのアイテムのサブラベルを示す string。
menuItem.toolTip macOS
そのアイテムに浮かび上がるテキストを示す string。
menuItem.enabled
アイテムが有効かどうかを示す boolean。このプロパティは動的に変更できます。
menuItem.visible
アイテムが見えるかどうかを示す boolean。このプロパティは動的に変更できます。
menuItem.checked
アイテムがチェックされたかどうかを示す boolean。このプロパティは動的に変更できます。
checkbox メニューアイテムは、選択された時に checked プロパティをオンかオフにトグル切り替えします。
radio メニューアイテムは、クリックされると checked がオンになり、同じメニュー内の隣接するアイテムすべてのこのプロパティをオフにします。
更なる動作は、click 関数の追加で可能です。
menuItem.registerAccelerator
boolean 型で、アクセラレータをシステムに登録する必要があるのか、ただ表示するだけなのかを示します。
このプロパティは動的に変更できます。
menuItem.sharingItem macOS
SharingItem 型で、role が shareMenu の場合に共有するアイテムを示します。
このプロパティは動的に変更できます。
menuItem.commandId
アイテムの一意な連番 id を示す number。
menuItem.menu
そのアイテムが属する Menu。