本文介绍: MenuItem类(菜单项的创建与修改)
在程序菜单或上下文菜单中插入新的菜单项
进程: 主进程
您可以在 Menu
末尾查看示例.
new MenuItem(options)
options
Objectclick
Function (可选) - 单击菜单项被调用click(menuItem,browserWindow)
menuItem
MenuItembrowserWindow
BrowserWindowevent
Event
role
String (可选) - 定义菜单项操作,指定为click
属性时该项将会被忽略. 详见任务章节.type
String (可选) - 可选normal
,separator
,submenu
,checkbox
或radio
.label
String - (可选)sublabel
String - (可选)accelerator
Accelerator (可选)icon
(NativeImage | String) (可选)enabled
Boolean (可选) -false
表示菜单项显示为不可点击的灰色visible
Boolean (可选) -false
表示菜单项完全隐藏。checked
Boolean (可选) - 仅checkbox
或radio
类型菜单项才需要指定。submenu
(MenuItemConstructorOptions[] | Menu) (可选) - 应为submenu
类型菜单项而指定,如果指定了submenu
, 则type:'submenu'
可以省略。如果它的值不是Menu
,将自动转为Menu.buildFromTemplate
。id
String - 菜单的唯一id。如果id已被使用,它将被用作这个菜单项的参考位置position
属性。position
String - 定义菜单的具体位置信息。
Roles任务
roles
可使菜单项具有预定义行为.
在创建菜单项时,如果有匹配的方法,建议直接指定 role
属性而不是尝试在 click
函数中手动实现该行为,这样可以给用户最好的使用体验。
当使用 role
时, label
和 accelerator
的值是可选的,默认将根据平台使用适当的值。
role
属性值可以为:
undo
redo
cut
copy
paste
pasteandmatchstyle
selectall
delete
minimize
- 最小化当前窗口close
- 关闭当前窗口quit
- 退出应用reload
-重新加载当前窗口forcereload
- 重新加载当前窗口并忽略缓存。toggledevtools
- 在当前窗口中切换开发人员工具togglefullscreen
- 在当前窗口切换全屏模式resetzoom
- 聚焦页缩放级别重置为原始大小zoomin
- 聚焦页放大10%zoomout
- 聚焦页缩小10%editMenu
- 默认的编辑
菜单 (撤销, 复制等等)windowMenu
- 默认的窗口
菜单 (最小化, 关闭等等)
在 macOS 上也可使用下列 role
:
about
- 映射到orderFrontStandardAboutPanel
动作hide
- 映射到hide
动作hideothers
- 映射到hideOtherApplications
动作unhide
- 映射到unhideAllApplications
动作startspeaking
- 映射到startSpeaking
动作stoppeaking
- 映射到stopSpeaking
动作front
- 映射到arrangeInFront
动作zoom
- 映射到performZoom
动作window
- 子菜单是一个Window
菜单help
- 子菜单是一个帮助
菜单services
- 子菜单是一个服务
菜单
当在macOS上指定 role
时, label
和 accelerator
是唯一会影响MenuItem的选项。其他选项将被忽略。
实例属性
menuItem.enabled
属性:是否启用该项
此属性可以动态更改。
menuItem.visible
属性:是否可见该项
此属性可以动态更改。
menuItem.checked
属性:该项是否已选中
checkbox
菜单项将在选中时打开或关闭 checked
属性
radio
菜单项将在点击时打开其checked
属性,并将关闭同一菜单中所有相邻项的该属性。
如果需要其他行为,您可以直接添加一个 click
函数。
此属性可以动态更改。
menuItem.label
属性:菜单项内容字符串
menuItem.click
属性:点击菜单项时需要触发的函数