类: 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
。