跳到主要內容

類別:MenuItem

類別:MenuItem

將項目新增到原生應用程式選單和上下文選單。

程序:主程序

請參閱 Menu 以取得範例。

new MenuItem(options)

  • options 物件
    • click 函數 (選用) - 當選單項目被點擊時,將呼叫 click(menuItem, window, event)
      • menuItem MenuItem
      • window BaseWindow | undefined - 如果沒有視窗開啟,則不會定義此項。
      • event KeyboardEvent
    • role 字串 (選用) - 可以是 undoredocutcopypastepasteAndMatchStyledeleteselectAllreloadforceReloadtoggleDevToolsresetZoomzoomInzoomOuttoggleSpellCheckertogglefullscreenwindowminimizeclosehelpaboutserviceshidehideOthersunhidequitshowSubstitutionstoggleSmartQuotestoggleSmartDashestoggleTextReplacementstartSpeakingstopSpeakingzoomfrontappMenufileMenueditMenuviewMenushareMenurecentDocumentstoggleTabBarselectNextTabselectPreviousTabshowAllTabsmergeAllWindowsclearRecentDocumentsmoveTabToNewWindowwindowMenu - 定義選單項目的動作,當指定時,click 屬性將被忽略。請參閱 角色
    • type 字串 (選用) - 可以是 normalseparatorsubmenucheckboxradio
    • label 字串 (選用)
    • sublabel 字串 (選用)
    • toolTip 字串 (選用) macOS - 此選單項目的懸停文字。
    • accelerator Accelerator (選用)
    • icon (NativeImage | 字串) (選用)
    • enabled 布林值 (選用) - 如果為 false,選單項目將會變灰且無法點擊。
    • acceleratorWorksWhenHidden 布林值 (選用) macOS - 預設為 true,而當 false 時,如果項目不可見,將防止加速器觸發項目。
    • visible 布林值 (選用) - 如果為 false,選單項目將完全隱藏。
    • checked 布林值 (選用) - 應僅針對 checkboxradio 類型的選單項目指定。
    • registerAccelerator 布林值 (選用) Linux Windows - 如果為 false,加速器將不會在系統中註冊,但仍會顯示。預設為 true。
    • sharingItem SharingItem (選用) macOS - 當 roleshareMenu 時要分享的項目。
    • submenu (MenuItemConstructorOptions[] | Menu) (選用) - 應針對 submenu 類型的選單項目指定。如果指定了 submenu,則可以省略 type: 'submenu'。如果該值不是 Menu,則會使用 Menu.buildFromTemplate 自動轉換為一個。
    • id 字串 (選用) - 在單一選單中是唯一的。如果已定義,則可以用作位置屬性對此項目的引用。
    • before 字串[] (選用) - 將此項目插入到具有指定 id 的項目之前。如果引用的項目不存在,則會將該項目插入到選單的末尾。也暗示了相關選單項目應放置在與該項目相同的「群組」中。
    • after 字串[] (選用) - 將此項目插入到具有指定 id 的項目之後。如果引用的項目不存在,則會將該項目插入到選單的末尾。
    • beforeGroupContaining 字串[] (選用) - 提供了一種方法,讓單一上下文選單宣告其包含群組的放置位置,在具有指定 id 的項目的包含群組之前。
    • afterGroupContaining 字串[] (選用) - 提供了一種方法,讓單一上下文選單宣告其包含群組的放置位置,在具有指定 id 的項目的包含群組之後。

注意: acceleratorWorksWhenHidden 指定為僅限 macOS,因為在 Windows 和 Linux 上,當項目隱藏時,加速器始終有效。此選項向使用者公開,讓他們可以選擇關閉它,因為這在原生 macOS 開發中是可能的。

角色

角色允許選單項目具有預先定義的行為。

對於任何符合標準角色的選單項目,最好指定 role,而不是嘗試在 click 函數中手動實作行為。內建的 role 行為將提供最佳的原生體驗。

當使用 role 時,labelaccelerator 值是選用的,並且將預設為每個平台的適當值。

每個選單項目都必須具有 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 - 子選單是 「服務」 選單。這僅適用於應用程式選單,並且與 macOS 應用程式中上下文選單中使用的「服務」子選單不同,後者在 Electron 中未實作。
  • recentDocuments - 子選單是「開啟最近使用的文件」選單。
  • clearRecentDocuments - 對應到 clearRecentDocuments 動作。
  • shareMenu - 子選單是 分享選單sharingItem 屬性也必須設定,以指示要分享的項目。

當在 macOS 上指定 role 時,labelaccelerator 是唯一會影響選單項目的選項。所有其他選項都將被忽略。仍然支援小寫 role,例如 toggledevtools

注意: enabledvisibility 屬性不適用於 macOS 上系統匣中的頂層選單項目。

實例屬性

以下屬性在 MenuItem 的實例上可用

一個 string,指示項目的唯一 ID,此屬性可以動態更改。

一個 string,指示項目的可見標籤。

一個 Function,當 MenuItem 收到點擊事件時觸發。可以使用 menuItem.click(event, focusedWindow, focusedWebContents) 呼叫它。

一個 Menu (選用),包含選單項目的子選單 (如果存在)。

一個 string,指示項目的類型。可以是 normalseparatorsubmenucheckboxradio

一個 string (選用),指示項目的角色 (如果已設定)。可以是 undoredocutcopypastepasteAndMatchStyledeleteselectAllreloadforceReloadtoggleDevToolsresetZoomzoomInzoomOuttoggleSpellCheckertogglefullscreenwindowminimizeclosehelpaboutserviceshidehideOthersunhidequitstartSpeakingstopSpeakingzoomfrontappMenufileMenueditMenuviewMenushareMenurecentDocumentstoggleTabBarselectNextTabselectPreviousTabshowAllTabsmergeAllWindowsclearRecentDocumentsmoveTabToNewWindowwindowMenu

一個 Accelerator (選用),指示項目的加速器 (如果已設定)。

一個 Accelerator | null,指示項目的 使用者指定的加速器 (適用於選單項目)。

注意: 此屬性僅在 MenuItem 新增到 Menu 之後才會初始化。透過 Menu.buildFromTemplate 或透過 Menu.append()/insert()。在初始化之前存取將只會傳回 null

一個 NativeImage | string (選用),指示項目的圖示 (如果已設定)。

一個 string,指示項目的子標籤。

一個 string,指示項目的懸停文字。

一個 boolean,指示項目是否啟用,此屬性可以動態更改。

一個 boolean,指示項目是否可見,此屬性可以動態更改。

一個 boolean,指示項目是否已勾選,此屬性可以動態更改。

checkbox 選單項目在選取時將切換 checked 屬性的開啟和關閉。

radio 選單項目在點擊時將開啟其 checked 屬性,並關閉同一選單中所有相鄰項目的該屬性。

您可以新增 click 函數以獲得額外行為。

一個 boolean,指示是否應向系統註冊加速器,或僅顯示加速器。

此屬性可以動態更改。

一個 SharingItem,指示當 roleshareMenu 時要分享的項目。

此屬性可以動態更改。

一個 number,指示項目的循序唯一 ID。

一個 Menu,項目是其一部分。