electron/docs-translations/zh-CN/api/menu-item.md
2017-04-06 15:06:46 +08:00

3.9 KiB
Raw Blame History

菜单项

类:菜单项

向原生的应用菜单和 context 菜单添加菜单项。

进程: Main

查看 Menu 的示。

new MenuItem(options)

  • options Object
    • click Function (可选) - 当菜单项被点击的时候,使用 click(menuItem,browserWindow) 调用。
      • menuItem MenuItem
      • browserWindow BrowserWindow
      • event Event
    • role String (可选) - 定义菜单项的行为,在指定 click 属性时将会被忽略。参见 roles.
    • 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 菜单项的特定类型,当它作为 type: 'submenu' 菜单项的特定类型时可以忽略。如果它的值不是 Menu,将自动转为 Menu.buildFromTemplate
    • id String (可选) - 菜单的唯一标识。如果被定义使用,它将被用作这个菜单项的参考位置属性。
    • position String (可选) - 定义菜单的具体指定位置信息。

Roles

Roles 允许菜单项有预定义的行为。最好为每个菜单项指定一个行为,而不是自己实现一个 click 函数中的行为。内置的 role 行为将提供最好的原生体验。

当使用 role 时,labelaccelerator 的值是可选的,会针对每个平台设置默认值。

role属性值可以为:

  • undo
  • redo
  • cut
  • copy
  • paste
  • pasteandmatchstyle
  • selectall
  • delete
  • minimize - 最小化当前窗口
  • close - 关闭当前窗口
  • quit- 退出应用程序
  • reload - 正常重新加载当前窗口
  • forcereload - 忽略缓存并重新加载当前窗口
  • toggledevtools - 在当前窗口中切换开发者工具
  • togglefullscreen- 在当前窗口中切换全屏模式
  • resetzoom - 将对焦页面的缩放级别重置为原始大小
  • zoomin - 将聚焦页面缩小10
  • zoomout - 将聚焦页面放大10
  • editMenu - 完整的默认 "Edit" 编辑菜单(拷贝,黏贴,等)
  • windowMenu - 完整的默认 "Window" 窗口菜单(最小化,关闭,等)

在 macOS 上,role 还可以有以下值:

  • about - 匹配 orderFrontStandardAboutPanel 行为
  • hide - 匹配 hide 行为
  • hideothers - 匹配 hideOtherApplications 行为
  • unhide - 匹配 unhideAllApplications 行为
  • startspeaking - 匹配 startSpeaking 行为
  • stopspeaking - 匹配 stopSpeaking 行为
  • front - 匹配 arrangeInFront 行为
  • zoom - 匹配 performZoom 行为
  • window - "Window" 菜单项
  • help - "Help" 菜单项
  • services - "Services" 菜单项

当在 macOS 上指定 role' 时,labelaccelerator` 是影响MenuItem的唯一的选项 所有其他选项将被忽略。

实例属性

MenuItem 对象拥有以下属性:

menuItem.enabled

一个布尔值表示是否启用该项,此属性可以动态改变。

menuItem.visible

一个布尔值表示是否可见,此属性可以动态改变。

menuItem.checked

一个布尔值表示是否选中该项,此属性可以动态改变。

checkbox 菜单项将在选中和未选中切换 checked 属性。

radio 菜单项将在选中切换 checked 属性,并且 将关闭同一菜单中所有相邻项目的属性。

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

menuItem.label

一个表示菜单项可见标签的字符串

menuItem.click

当 MenuItem 接收到点击事件时触发的函数