原文:https://github.com/electron/electron/blob/master/docs/api/menu-item.md
译者:Lin
添加项到原生应用菜单和右键菜单
进程:主进程
查看Menu的例子。
new MenuItem(options)
-
optionsObject类型-
clickFunction类型(可选参数)- 当菜单项被点击的时候将被使用click(menuItem, browserWindow, event)调用。-
menuItemMenuItem类型 -
browserWindowBrowserWindow类型 -
eventEvent类型
-
-
roleString类型(可选参数)- 菜单项的默认动作,当指定click属性后这个属性被忽略。 -
typeString类型(可选参数)- 可以是normal、separator、submenu、checkbox或者radio。 -
labelString类型(可选参数) -
sublabelString类型(可选参数) -
acceleratorAccelerator类型(可选参数) -
icon(NativeImage | String)类型(可选参数) -
enabledBoolean类型(可选参数)- 如果设置为false,菜单项将变为灰色并且无法点击。 -
visibleBoolean类型(可选参数)- 如果设置为false,菜单项将被完全隐藏。 -
checkedBoolean类型(可选参数)- 只有菜单项被指定为checkbox或者radio类型时有效。 -
submenu(MenuItemConstructorOptions[] | Menu)类型(可选参数)- 菜单项需要被指定为submenu类型。如果submenu被设置,type: 'submenu'可以被省略。如果值不是一个Menu类型,那么它将被使用Menu.buildFromTemplate自动的转变成一个Menu类型。 -
idString类型(可选参数)- 一个单独的菜单内唯一的值。如果定义这个值,那么它可以被position参数用来指向这个项。 -
positionString类型(可选参数)- 这个字段允许在给定的菜单内详细的指定项的位置。
-
最好对任意一个菜单项都指定可以匹配标准作用的role,而不是试图手动实现一个click函数的执行内容。内置的role行为将会给予最好的原生体验。
当使用role时label和accelerator是可选的,并且将默认为每个平台适当的值。
role属性可以有以下值:
undoredocutcopypastepasteandmatchstyleselectalldelete-
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,只有label和accelerator是可以影响到MenuItem的选项。其他所有的选项都将被忽略。
实例的属性
下面的属性在MenuItem的实例中可用:
menuItem.enabled
一个Boolean类型的标志,标示项是否是可用的,这个属性可以被动态的改变。
menuItem.visible
一个Boolean类型的标志,标示项是否是可见的,这个属性可以被动态的改变。
menuItem.checked
一个Boolean类型的标志,标示项是否是可点击的,这个属性可以被动态的改变。
checkbox菜单项将在选中的时候切换checked属性为on或者off.
radio菜单项当它是被点击的时候,将打开它自己的checked属性,并且将关闭同菜单下的所有相邻项的这个属性。
你可以添加一个附加行为的click函数。
menuItem.label
String类型,菜单项可见标签的代表。
menuItem.click
当MenuItem接收到一个点击事件时被激发的函数。