菜单项

优质
小牛编辑
134浏览
2023-12-01

在程序菜单或上下文菜单中插入新的菜单项

进程: 主进程
您可以在 Menu末尾查看示例.

new MenuItem(options)

  • options Object

    • click Function (可选) - 单击菜单项被调用 click(menuItem,browserWindow)

      • menuItem MenuItem

      • browserWindow BrowserWindow

      • event Event
    • role String (可选) - 定义菜单项操作,指定为 click 属性时该项将会被忽略. 详见任务章节.

    • type String (可选) - 可选normal, separator, submenu, checkboxradio.

    • label String - (可选)

    • sublabel String - (可选)

    • accelerator Accelerator (可选)

    • icon (NativeImage | String) (可选)

    • enabled Boolean (可选) - false表示菜单项显示为不可点击的灰色

    • visible Boolean (可选) - false表示菜单项完全隐藏。

    • checked Boolean (可选) - 仅 checkboxradio类型菜单项才需要指定。

    • submenu (MenuItemConstructorOptions[] | Menu) (可选) - 应为 submenu 类型菜单项而指定,如果指定了 submenu, 则 type:'submenu'可以省略。如果它的值不是 Menu,将自动转为 Menu.buildFromTemplate

    • id String - 菜单的唯一id。如果id已被使用,它将被用作这个菜单项的参考位置 position 属性。

    • position String - 定义菜单的具体位置信息。

Roles任务

roles 可使菜单项具有预定义行为.

在创建菜单项时,如果有匹配的方法,建议直接指定 role 属性而不是尝试在 click函数中手动实现该行为,这样可以给用户最好的使用体验。
当使用 role时, labelaccelerator 的值是可选的,默认将根据平台使用适当的值。
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时, labelaccelerator是唯一会影响MenuItem的选项。其他选项将被忽略。

实例属性

menuItem.enabled

属性:是否启用该项

此属性可以动态更改。

menuItem.visible

属性:是否可见该项

此属性可以动态更改。

menuItem.checked

属性:该项是否已选中

checkbox 菜单项将在选中时打开或关闭 checked属性 radio菜单项将在点击时打开其checked属性,并将关闭同一菜单中所有相邻项的该属性。
如果需要其他行为,您可以直接添加一个 click函数。
此属性可以动态更改。

menuItem.label

属性:菜单项内容字符串

menuItem.click

属性:点击菜单项时需要触发的函数