Menu
类:Menu
创建原生应用程序菜单和上下文菜单。
进程:主进程
另请参阅:关于如何在应用程序中实现菜单的详细指南。
Electron 的内置类不能被用户代码继承。更多信息,请参阅常见问题解答。
new Menu()
创建一个新菜单。
静态方法
Menu 类具有以下静态方法
Menu.setApplicationMenu(menu)
menuMenu | null
在 macOS 上将 menu 设置为应用程序菜单。在 Windows 和 Linux 上,menu 将被设置为每个窗口的顶部菜单。
在 Windows 和 Linux 上,您还可以在顶级项名称中使用 & 来指示哪个字母应获得生成的加速器。例如,为文件菜单使用 &File 会生成一个 Alt-F 加速器,该加速器会打开关联的菜单。按钮标签中指示的字符将带有下划线,并且 & 字符不会显示在按钮标签上。
为了转义项名称中的 & 字符,请在其前面加上另一个 &。例如,&&File 将在按钮标签上显示 &File。
传递 null 将会隐藏默认菜单。在 Windows 和 Linux 上,这还会从窗口中移除菜单栏。
如果应用程序没有设置菜单,则会自动创建默认菜单。它包含标准的项,如 File、Edit、View、Window 和 Help。
Menu.getApplicationMenu()
返回 Menu | null - 如果设置了应用程序菜单,则返回该菜单;如果未设置,则返回 null。
返回的 Menu 实例不支持动态添加或删除菜单项。实例属性仍可动态修改。
Menu.sendActionToFirstResponder(action) macOS
actionstring
将 action 发送到应用程序的第一个响应者。这用于模拟 macOS 的默认菜单行为。通常,您会使用 MenuItem 的 role 属性。
有关 macOS 原生操作的更多信息,请参阅 macOS Cocoa 事件处理指南。
Menu.buildFromTemplate(template)
template(MenuItemConstructorOptions | MenuItem)[]
返回 Menu
通常,template 是用于构造 MenuItem 的 options 数组。其用法可参考上方。
您还可以向 template 的元素添加其他字段,它们将成为构造的菜单项的属性。
实例方法
menu 对象具有以下实例方法
menu.popup([options])
将此菜单作为上下文菜单在 BaseWindow 中弹出。
有关更多详细信息,请参阅 上下文菜单 指南。
menu.closePopup([window])
windowBaseWindow (可选) - 默认是焦点所在的窗口。
关闭 window 中的上下文菜单。
menu.append(menuItem)
menuItemMenuItem
将 menuItem 追加到菜单。
menu.getMenuItemById(id)
idstring
返回 MenuItem | null - 具有指定 id 的项
menu.insert(pos, menuItem)
posIntegermenuItemMenuItem
将 menuItem 插入到菜单的 pos 位置。
实例事件
使用 new Menu 创建的对象或 Menu.buildFromTemplate 返回的对象会发出以下事件
某些事件仅在特定操作系统上可用,并已相应标记。
事件:'menu-will-show'
返回
eventEvent
在调用 menu.popup() 时发出。
事件:'menu-will-close'
返回
eventEvent
手动关闭弹出菜单或使用 menu.closePopup() 关闭弹出菜单时发出。
实例属性
menu 对象还具有以下属性
menu.items
一个 MenuItem[] 数组,包含菜单的项。
每个 Menu 由多个 MenuItem 实例组成,每个 MenuItem 可以在其 submenu 属性中嵌套一个 Menu。