菜单项
在程序菜单或上下文菜单中插入新的菜单项
进程: 主进程
您可以在 Menu末尾查看示例.
new MenuItem(options)
new MenuItem(options)optionsObjectclickFunction (可选) - 单击菜单项被调用click(menuItem,browserWindow)menuItemMenuItembrowserWindowBrowserWindoweventEvent
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属性值可以为:
undoredocutcopypastepasteandmatchstyleselectalldeleteminimize- 最小化当前窗口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.enabled属性:是否启用该项
此属性可以动态更改。
menuItem.visible
menuItem.visible属性:是否可见该项
此属性可以动态更改。
menuItem.checked
menuItem.checked属性:该项是否已选中
checkbox 菜单项将在选中时打开或关闭 checked属性 radio菜单项将在点击时打开其checked属性,并将关闭同一菜单中所有相邻项的该属性。
如果需要其他行为,您可以直接添加一个 click函数。
此属性可以动态更改。
menuItem.label
menuItem.label属性:菜单项内容字符串
menuItem.click
menuItem.click属性:点击菜单项时需要触发的函数
Last updated
Was this helpful?