跳转到主要内容

MenuItem

类: MenuItem

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

进程: 主进程

请参阅 Menu 以获取示例。

警告

Electron 的内置类不能在用户代码中被继承。有关更多信息,请参阅 FAQ

new MenuItem(options)

  • options Object
    • click 函数 (可选) - 当菜单项被点击时,将使用 click(menuItem, window, event) 调用。
      • menuItem MenuItem
      • window BaseWindow | undefined - 如果没有打开窗口,则此参数将未定义。
      • event KeyboardEvent
    • role 字符串 (可选) - 可以是 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 字符串 (可选)
      • normal
      • separator
      • submenu
      • checkbox
      • radio
      • header - 仅在 macOS 14 及更高版本上可用。
      • palette - 仅在 macOS 14 及更高版本上可用。
    • label 字符串 (可选)
    • sublabel 字符串 (可选) macOS - 在 macOS >= 14.4 中可用
    • toolTip 字符串 (可选) macOS - 此菜单项的悬停文本。
    • accelerator 字符串 (可选) - 一个 Accelerator 字符串。
    • icon (NativeImage | string) (可选) - 可以是一个 NativeImage 或图标的文件路径。
    • enabled 布尔值 (可选) - 如果为 false,则菜单项将变灰且不可点击。
    • acceleratorWorksWhenHidden 布尔值 (可选) macOS - 默认值为 true,当 false 时,如果该项目不可见,将阻止加速器触发该项目。
    • visible 布尔值 (可选) - 如果为 false,则菜单项将完全隐藏。
    • checked 布尔值 (可选) - 仅应为 checkboxradio 类型的菜单项指定。
    • registerAccelerator 布尔值 (可选) Linux Windows - 如果为 false,则加速器不会在系统中注册,但仍会显示。默认为 true。
    • sharingItem SharingItem (可选) macOS - 当 roleshareMenu 时要共享的项目。
    • submenu (MenuItemConstructorOptions[] | Menu) (可选) - 应为 submenu 类型的菜单项指定。如果指定了 submenu,则可以省略 type: 'submenu'。如果该值不是 Menu,则它将使用 Menu.buildFromTemplate 自动转换为一个。
    • id 字符串 (可选) - 在单个菜单中唯一。如果定义了,则可以使用位置属性作为对此项目的引用。
    • before 字符串[] (可选) - 在具有指定 id 的项目之前插入此项目。如果引用的项目不存在,则该项目将插入到菜单的末尾。同时意味着有问题的菜单项应与该项目位于同一“组”中。
    • after 字符串[] (可选) - 在具有指定 id 的项目之后插入此项目。如果引用的项目不存在,则该项目将插入到菜单的末尾。
    • beforeGroupContaining 字符串[] (可选) - 为单个上下文菜单提供一种声明其包含组的放置方式,位于具有指定 id 的项目的包含组之前。
    • afterGroupContaining 字符串[] (可选) - 为单个上下文菜单提供一种声明其包含组的放置方式,位于具有指定 id 的项目的包含组之后。
注意

acceleratorWorksWhenHidden 被指定为仅 macOS,因为加速器在 Windows 和 Linux 上始终在项目隐藏时起作用。该选项向用户公开,以便他们可以选择将其关闭,因为这在原生 macOS 开发中是可能的。

实例属性

MenuItem 的实例上可用的属性如下

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

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

一个 Function,当 MenuItem 接收到点击事件时被触发。可以使用 menuItem.click(event, focusedWindow, focusedWebContents) 调用它。

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

一个 string,指示项目的类型。可以是 normalseparatorsubmenucheckboxradioheaderpalette

注意

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

一个 string(可选),指示项目的角色(如果已设置)。可以是 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(可选),指示项目的加速器(如果已设置)。

一个 Accelerator | null,指示菜单项的 用户分配的加速器

注意

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

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

一个 string,指示项目的子标签。

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

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

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

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

checkbox 菜单项将在被选中时在开启和关闭 checked 属性之间切换。

radio 菜单项将在点击时开启其 checked 属性,并将关闭同一菜单中所有相邻项目的该属性。

您可以添加一个 click 函数以获得其他行为。

一个 boolean,指示加速器是否应在系统中注册或仅显示。

此属性可以动态更改。

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

此属性可以动态更改。

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

一个 Menu,项目是其一部分。