本文介绍: MenuItem类(菜单项的创建与修改)
在程序菜单或上下文菜单中插入新的菜单项
进程: 主进程
您可以在 Menu末尾查看示例.  
new MenuItem(options)
- optionsObject- clickFunction (可选) - 单击菜单项被调用- click(menuItem,browserWindow)- menuItemMenuItem
- browserWindowBrowserWindow
- eventEvent
 
- roleString (可选) - 定义菜单项操作,指定为- click属性时该项将会被忽略. 详见任务章节.
- typeString (可选) - 可选- normal,- separator,- submenu,- checkbox或- radio.
- labelString - (可选)
- sublabelString - (可选)
- acceleratorAccelerator (可选)
- icon(NativeImage | String) (可选)
- enabledBoolean (可选) -- false表示菜单项显示为不可点击的灰色
- visibleBoolean (可选) -- false表示菜单项完全隐藏。
- checkedBoolean (可选) - 仅- checkbox或- radio类型菜单项才需要指定。
- submenu(MenuItemConstructorOptions[] | Menu) (可选) - 应为- submenu类型菜单项而指定,如果指定了- submenu, 则- type:'submenu'可以省略。如果它的值不是- Menu,将自动转为- Menu.buildFromTemplate。
- idString - 菜单的唯一id。如果id已被使用,它将被用作这个菜单项的参考位置- position属性。
- positionString - 定义菜单的具体位置信息。
 
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
属性:点击菜单项时需要触发的函数