類別:MenuItem
類別:MenuItem
將項目新增到原生應用程式選單和上下文選單。
程序:主程序
請參閱 Menu
以取得範例。
new MenuItem(options)
注意: acceleratorWorksWhenHidden
指定為僅限 macOS,因為在 Windows 和 Linux 上,當項目隱藏時,加速器始終有效。此選項向使用者公開,讓他們可以選擇關閉它,因為這在原生 macOS 開發中是可能的。
角色
角色允許選單項目具有預先定義的行為。
對於任何符合標準角色的選單項目,最好指定 role
,而不是嘗試在 click
函數中手動實作行為。內建的 role
行為將提供最佳的原生體驗。
當使用 role
時,label
和 accelerator
值是選用的,並且將預設為每個平台的適當值。
每個選單項目都必須具有 role
、label
,或者在分隔符號的情況下,具有 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
時,label
和 accelerator
是唯一會影響選單項目的選項。所有其他選項都將被忽略。仍然支援小寫 role
,例如 toggledevtools
。
注意: enabled
和 visibility
屬性不適用於 macOS 上系統匣中的頂層選單項目。
實例屬性
以下屬性在 MenuItem
的實例上可用
menuItem.id
一個 string
,指示項目的唯一 ID,此屬性可以動態更改。
menuItem.label
一個 string
,指示項目的可見標籤。
menuItem.click
一個 Function
,當 MenuItem 收到點擊事件時觸發。可以使用 menuItem.click(event, focusedWindow, focusedWebContents)
呼叫它。
event
KeyboardEventfocusedWindow
BaseWindowfocusedWebContents
WebContents
menuItem.submenu
一個 Menu
(選用),包含選單項目的子選單 (如果存在)。
menuItem.type
一個 string
,指示項目的類型。可以是 normal
、separator
、submenu
、checkbox
或 radio
。
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
唯讀 macOS
一個 Accelerator | null
,指示項目的 使用者指定的加速器 (適用於選單項目)。
注意: 此屬性僅在 MenuItem
新增到 Menu
之後才會初始化。透過 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
一個 number
,指示項目的循序唯一 ID。
menuItem.menu
一個 Menu
,項目是其一部分。