メインコンテンツにスキップ

クラス: MenuItem

クラス: MenuItem

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

プロセス: メイン

例については、Menuを参照してください。

new MenuItem(options)

  • options オブジェクト
    • click 関数 (オプション) - メニュー項目がクリックされたときに click(menuItem, window, event) で呼び出されます。
      • menuItem MenuItem
      • window BaseWindow | 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, checkbox または radio を指定できます。
    • label string (オプション)
    • sublabel string (オプション)
    • toolTip string (オプション) macOS - このメニュー項目のホバーテキスト。
    • accelerator Accelerator (オプション)
    • icon (NativeImage | string) (オプション)
    • enabled boolean (オプション) - falseの場合、メニュー項目はグレー表示になり、クリックできません。
    • acceleratorWorksWhenHidden boolean (オプション) macOS - デフォルトは true で、false の場合、項目が表示されていない場合、アクセラレーターが項目をトリガーするのを防ぎます。
    • visible boolean (オプション) - falseの場合、メニュー項目は完全に非表示になります。
    • checked boolean (オプション) - checkbox または radio タイプのメニュー項目でのみ指定する必要があります。
    • registerAccelerator boolean (オプション) Linux Windows - falseの場合、アクセラレーターはシステムに登録されませんが、表示はされます。デフォルトはtrueです。
    • sharingItem SharingItem (オプション) macOS - roleshareMenu の場合に共有する項目。
    • submenu (MenuItemConstructorOptions[] | Menu) (オプション) - submenu タイプのメニュー項目で指定する必要があります。 submenu が指定されている場合、type: 'submenu' は省略できます。 値が Menu でない場合は、Menu.buildFromTemplate を使用して自動的に変換されます。
    • id string (オプション) - 単一のメニュー内で一意。定義した場合、position 属性でこの項目への参照として使用できます。
    • before string[] (オプション) - 指定された ID の項目の前にこの項目を挿入します。参照された項目が存在しない場合、項目はメニューの最後に挿入されます。また、問題のメニュー項目は、その項目と同じ「グループ」に配置する必要があることも意味します。
    • after string[] (オプション) - 指定された ID の項目の後にこの項目を挿入します。参照された項目が存在しない場合、項目はメニューの最後に挿入されます。
    • beforeGroupContaining string[] (オプション) - 単一のコンテキストメニューが、指定された ID の項目を含むグループの前に、それを含むグループの配置を宣言する手段を提供します。
    • afterGroupContaining string[] (オプション) - 単一のコンテキストメニューが、指定された ID の項目を含むグループの後に、それを含むグループの配置を宣言する手段を提供します。

注: acceleratorWorksWhenHidden が macOS のみとして指定されているのは、Windows および Linux では項目が非表示の場合でもアクセラレーターが常に機能するためです。このオプションは、ネイティブ macOS 開発で可能なため、オフにするオプションをユーザーに提供するために公開されています。

ロール

ロールを使用すると、メニュー項目に事前定義された動作を持たせることができます。

click 関数で動作を手動で実装しようとするのではなく、標準ロールに一致するメニュー項目には role を指定するのが最善です。組み込みの role の動作は、最適なネイティブエクスペリエンスを提供します。

role を使用する場合、label および accelerator の値はオプションであり、各プラットフォームに適した値にデフォルト設定されます。

すべてのメニュー項目には、rolelabel、またはセパレータの場合は type のいずれかが必要です。

role プロパティには、次の値を指定できます

  • undo
  • about - ネイティブなバージョン情報パネルをトリガーします(Windows ではカスタムメッセージボックス。それ自体は提供しません)。
  • redo
  • cut
  • copy
  • paste
  • pasteAndMatchStyle
  • selectAll
  • delete
  • minimize - 現在のウィンドウを最小化します。
  • close - 現在のウィンドウを閉じます。
  • quit - アプリケーションを終了します。
  • reload - 現在のウィンドウをリロードします。
  • forceReload - キャッシュを無視して、現在のウィンドウをリロードします。
  • toggleDevTools - 現在のウィンドウでデベロッパーツールを切り替えます。
  • togglefullscreen - 現在のウィンドウで全画面モードを切り替えます。
  • resetZoom - フォーカスされたページのズームレベルを元のサイズにリセットします。
  • zoomIn - フォーカスされたページを 10% 拡大します。
  • zoomOut - フォーカスされたページを 10% 縮小します。
  • toggleSpellChecker - ビルトインのスペルチェッカーを有効/無効にします。
  • fileMenu - デフォルトの「ファイル」メニュー全体(閉じる/終了)
  • editMenu - デフォルトの「編集」メニュー全体(元に戻す、コピーなど)。
  • viewMenu - デフォルトの「表示」メニュー全体(再読み込み、デベロッパーツール切り替えなど)
  • windowMenu - デフォルトの「ウィンドウ」メニュー全体(最小化、ズームなど)。

次の追加のロールは macOS で使用できます

  • appMenu - デフォルトの「アプリケーション」メニュー全体(バージョン情報、サービスなど)
  • 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 - サブメニューは、「サービス」メニューです。これは、アプリケーションメニューでのみ使用することを目的としており、Electron に実装されていない macOS アプリのコンテキストメニューで使用される「サービス」サブメニューとは異なります
  • recentDocuments - サブメニューは「最近開いた項目」メニューです。
  • clearRecentDocuments - clearRecentDocuments アクションにマッピングします。
  • shareMenu - サブメニューは共有メニューです。共有する項目を示すために、sharingItem プロパティも設定する必要があります。

macOS で role を指定する場合、labelaccelerator のみがメニュー項目に影響するオプションです。他のすべてのオプションは無視されます。小文字の role (例: toggledevtools) は引き続きサポートされています。

注: enabled プロパティと visibility プロパティは、macOS のトレイのトップレベルのメニュー項目では使用できません。

インスタンスプロパティ

MenuItem のインスタンスでは、以下のプロパティが利用可能です。

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

アイテムの可視ラベルを示す string です。

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

メニューアイテムのサブメニュー (存在する場合) を含む Menu (オプション) です。

アイテムのタイプを示す string です。normalseparatorsubmenucheckbox、または radio を指定できます。

アイテムの役割 (設定されている場合) を示す string (オプション) です。undoredocutcopypastepasteAndMatchStyledeleteselectAllreloadforceReloadtoggleDevToolsresetZoomzoomInzoomOuttoggleSpellCheckertogglefullscreenwindowminimizeclosehelpaboutserviceshidehideOthersunhidequitstartSpeakingstopSpeakingzoomfrontappMenufileMenueditMenuviewMenushareMenurecentDocumentstoggleTabBarselectNextTabselectPreviousTabshowAllTabsmergeAllWindowsclearRecentDocumentsmoveTabToNewWindow、または windowMenu を指定できます。

アイテムのアクセラレータ (設定されている場合) を示す Accelerator (オプション) です。

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

注: このプロパティは、MenuItemMenu に追加された後でのみ初期化されます。Menu.buildFromTemplate または Menu.append()/insert() を介して追加する必要があります。初期化前にアクセスすると、null が返されます。

アイテムのアイコン (設定されている場合) を示す NativeImage | string (オプション) です。

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

アイテムのホバーテキストを示す string です。

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

アイテムが表示されているかどうかを示す boolean です。このプロパティは動的に変更できます。

アイテムがチェックされているかどうかを示す boolean です。このプロパティは動的に変更できます。

checkbox メニューアイテムは、選択時に checked プロパティをオン/オフにします。

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

追加の動作のために click 関数を追加できます。

アクセラレータをシステムに登録するか、表示だけにするかを示す boolean です。

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

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

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

アイテムの連番の一意な ID を示す number です。

アイテムが属する Menu です。