跳转到主要内容

MenuItem

Class: MenuItem

向原生应用程序菜单和上下文菜单添加项。

进程:主进程

有关示例,请参阅 Menu

警告

Electron 的内置类不能被用户代码继承。更多信息,请参阅常见问题解答

new MenuItem(options)

  • options Object
    • click Function (optional) - 当菜单项被点击时,将使用 click(menuItem, window, event) 调用。
      • menuItem MenuItem
      • window BaseWindow | undefined - 如果没有打开窗口,则此项未定义。
      • event KeyboardEvent
    • role string (optional) - 可以是 undo, redo, cut, copy, paste, pasteAndMatchStyle, delete, selectAll, reload, forceReload, toggleDevTools, resetZoom, zoomIn, zoomOut, toggleSpellChecker, togglefullscreen, window, minimize, close, help, about, services, hide, hideOthers, unhide, quit, showSubstitutions, toggleSmartQuotes, toggleSmartDashes, toggleTextReplacement, startSpeaking, stopSpeaking, zoom, front, appMenu, fileMenu, editMenu, viewMenu, shareMenu, recentDocuments, toggleTabBar, selectNextTab, selectPreviousTab, showAllTabs, mergeAllWindows, clearRecentDocuments, moveTabToNewWindowwindowMenu - 定义菜单项的操作,指定后将忽略 click 属性。请参阅 roles
    • type string (optional)
      • normal
      • separator
      • submenu
      • checkbox
      • radio
      • header - 仅在 macOS 14 及更高版本中可用。
      • palette - 仅在 macOS 14 及更高版本中可用。
    • label string (optional)
    • sublabel string (optional) macOS - 在 macOS >= 14.4 中可用
    • toolTip string (optional) macOS - 此菜单项的悬停文本。
    • accelerator string (optional) - 一个 Accelerator 字符串。
    • icon (NativeImage | string) (optional)
    • enabled boolean (optional) - 如果为 false,则菜单项将显示为灰色且不可点击。
    • acceleratorWorksWhenHidden boolean (optional) macOS - 默认为 true,当设置为 false 时,如果菜单项未显示,将阻止快捷键触发该项。
    • visible boolean (optional) - 如果为 false,则菜单项将完全隐藏。
    • checked boolean (optional) - 仅应为 checkboxradio 类型菜单项指定。
    • registerAccelerator boolean (optional) Linux Windows - 如果为 false,快捷键将不会在系统级别注册,但仍会显示。默认为 true。
    • sharingItem SharingItem (optional) macOS - 当 roleshareMenu 时要共享的项。
    • submenu (MenuItemConstructorOptions[] | Menu) (optional) - 应为 submenu 类型菜单项指定。如果指定了 submenu,则可以省略 type: 'submenu'。如果该值不是 Menu,它将使用 Menu.buildFromTemplate 自动转换为一个。
    • id string (optional) - 在单个菜单中唯一。如果定义了,则可以使用位置属性作为对此项的引用。
    • before string[] (optional) - 将此项插入到具有指定 id 的项之前。如果引用的项不存在,则该项将插入到菜单的末尾。这也意味着该菜单项将被放置在与引用的项相同的“组”中。
    • after string[] (optional) - 将此项插入到具有指定 id 的项之后。如果引用的项不存在,则该项将插入到菜单的末尾。
    • beforeGroupContaining string[] (optional) - 提供了一种方式,允许单个上下文菜单声明其包含组放在具有指定 id 的项的包含组之前。
    • afterGroupContaining string[] (optional) - 提供了一种方式,允许单个上下文菜单声明其包含组放在具有指定 id 的项的包含组之后。
注意

acceleratorWorksWhenHidden 被指定为仅限 macOS,因为在 Windows 和 Linux 上,快捷键在项隐藏时总是有效。此选项暴露给用户,让他们可以选择关闭它,因为这在原生 macOS 开发中是可能的。

实例属性

以下属性可用于 MenuItem 实例

一个 string,指示项的唯一 ID。此属性可以动态更改。

一个 string,指示项的可见标签。

当 MenuItem 收到点击事件时触发的 Function。可以调用 menuItem.click(event, focusedWindow, focusedWebContents)

一个 Menu (optional),包含菜单项的子菜单(如果存在)。

一个 string,指示项的类型。可以是 normal, separator, submenu, checkbox, radio, headerpalette

注意

headerpalette 仅在 macOS 14 及更高版本中可用。

一个 string (optional),指示项的角色(如果已设置)。可以是 undo, redo, cut, copy, paste, pasteAndMatchStyle, delete, selectAll, reload, forceReload, toggleDevTools, resetZoom, zoomIn, zoomOut, toggleSpellChecker, togglefullscreen, window, minimize, close, help, about, services, hide, hideOthers, unhide, quit, startSpeaking, stopSpeaking, zoom, front, appMenu, fileMenu, editMenu, viewMenu, shareMenu, recentDocuments, toggleTabBar, selectNextTab, selectPreviousTab, showAllTabs, mergeAllWindows, clearRecentDocuments, moveTabToNewWindowwindowMenu

一个 Accelerator (optional),指示项的快捷键(如果已设置)。

一个 Accelerator | null,指示项的 用户分配的快捷键

注意

此属性仅在 MenuItem 被添加到 Menu 后初始化。无论是通过 Menu.buildFromTemplate 还是通过 Menu.append()/insert()。在初始化之前访问将仅返回 null

一个 NativeImage | string (optional),指示项的图标(如果已设置)。

一个 string,指示项的副标签。

一个 string,指示项的悬停文本。

一个 boolean,指示项是否启用。此属性可以动态更改。

一个 boolean,指示项是否可见。此属性可以动态更改。

一个 boolean,指示项是否被选中。此属性可以动态更改。

checkbox 类型的菜单项在被选中时将切换 checked 属性。

radio 类型的菜单项在被点击时会将其 checked 属性设置为 true,并将其设置为同一菜单中所有相邻项的 checked 属性设置为 false。

您可以添加一个 click 函数来实现额外行为。

一个 boolean,指示快捷键是否应该在系统上注册或仅显示。

此属性可以动态更改。

一个 SharingItem,指示当 roleshareMenu 时要共享的项。

此属性可以动态更改。

一个 number,指示项的顺序唯一 ID。

该项所属的 Menu