9. MenuItem

原文:https://github.com/electron/electron/blob/master/docs/api/menu-item.md
译者:Lin

添加项到原生应用菜单和右键菜单

进程:主进程

查看Menu的例子。

new MenuItem(options)

  • options Object类型
    • click Function类型(可选参数)- 当菜单项被点击的时候将被使用click(menuItem, browserWindow, event)调用。
      • menuItem MenuItem类型
      • browserWindow BrowserWindow类型
      • event Event类型
    • role String类型(可选参数)- 菜单项的默认动作,当指定click属性后这个属性被忽略。
    • type String类型(可选参数)- 可以是normalseparatorsubmenucheckbox或者radio
    • label String类型(可选参数)
    • sublabel String类型(可选参数)
    • accelerator Accelerator类型(可选参数)
    • icon (NativeImage | String)类型(可选参数)
    • enabled Boolean类型(可选参数)- 如果设置为false,菜单项将变为灰色并且无法点击。
    • visible Boolean类型(可选参数)- 如果设置为false,菜单项将被完全隐藏。
    • checked Boolean类型(可选参数)- 只有菜单项被指定为checkbox或者radio类型时有效。
    • submenu (MenuItemConstructorOptions[] | Menu)类型(可选参数)- 菜单项需要被指定为submenu类型。如果submenu被设置,type: 'submenu'可以被省略。如果值不是一个Menu类型,那么它将被使用Menu.buildFromTemplate自动的转变成一个Menu类型。
    • id String类型(可选参数)- 一个单独的菜单内唯一的值。如果定义这个值,那么它可以被position参数用来指向这个项。
    • position String类型(可选参数)- 这个字段允许在给定的菜单内详细的指定项的位置。

最好对任意一个菜单项都指定可以匹配标准作用的role,而不是试图手动实现一个click函数的执行内容。内置的role行为将会给予最好的原生体验。

当使用rolelabelaccelerator是可选的,并且将默认为每个平台适当的值。

role属性可以有以下值:

  • undo
  • redo
  • cut
  • copy
  • paste
  • pasteandmatchstyle
  • selectall
  • delete
  • minimize - 最小化当前窗口。
  • close - 关闭当前窗口。
  • quit- 退出应用。
  • reload - 重载当前窗口。
  • forcereload - 忽视缓存重载当前窗口。
  • toggledevtools - 在当前窗口中切换开发工具。
  • togglefullscreen - 在当前窗口中切换全屏模式
  • resetzoom - 将聚焦的页面的缩放等级重置为原来的大小。
  • zoomin - 放大聚焦的页面10%
  • zoomout - 缩小聚焦的页面10%

MacOS中role也可以有以下附加值:

  • about - 映射到orderFrontStandardAboutPanel动作。
  • hide - 映射到hide动作。
  • hideothers - 映射到hideOtherApplications动作。
  • unhide - 映射到unhideAllApplications动作。
  • startspeaking - 映射到startSpeaking动作。
  • stopspeaking - 映射到`stopSpeakingv
  • front - 映射到arrangeInFront动作。
  • zoom - 映射到performZoom动作。
  • window - 子菜单是一个"Window"菜单。
  • help - 子菜单是一个"Help"菜单。
  • services - 子菜单是一个"Services"菜单。

当在MacOS中指定role,只有labelaccelerator是可以影响到MenuItem的选项。其他所有的选项都将被忽略。

实例的属性

下面的属性在MenuItem的实例中可用:

menuItem.enabled

一个Boolean类型的标志,标示项是否是可用的,这个属性可以被动态的改变。

menuItem.visible

一个Boolean类型的标志,标示项是否是可见的,这个属性可以被动态的改变。

menuItem.checked

一个Boolean类型的标志,标示项是否是可点击的,这个属性可以被动态的改变。

checkbox菜单项将在选中的时候切换checked属性为on或者off.

radio菜单项当它是被点击的时候,将打开它自己的checked属性,并且将关闭同菜单下的所有相邻项的这个属性。

你可以添加一个附加行为的click函数。

menuItem.label

String类型,菜单项可见标签的代表。

menuItem.click

MenuItem接收到一个点击事件时被激发的函数。

你可能感兴趣的:(9. MenuItem)