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

106 lines
3.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 菜单项
## 类:菜单项
> 向原生的应用菜单和 context 菜单添加菜单项。
进程: [Main](../glossary.md#main-process)
查看 [`Menu`](menu.md) 的示。
### `new MenuItem(options)`
* `options` Object
* `click` Function (可选) - 当菜单项被点击的时候,使用 `click(menuItem,browserWindow)` 调用。
* `menuItem` MenuItem
* `browserWindow` BrowserWindow
* `event` Event
* `role` String (可选) - 定义菜单项的行为,在指定 `click` 属性时将会被忽略。参见 [roles](#roles).
* `type` String (可选) - 取值 `normal`, `separator`, `submenu`, `checkbox``radio`
* `label` String - (可选)
* `sublabel` String - (可选)
* `accelerator` [Accelerator](accelerator.md) (可选)
* `icon` ([NativeImage](native-image.md) | String) (可选)
* `enabled` Boolean (可选) - 如果为 false菜单项将显示为灰色不可点击。
* `visible` Boolean (可选) - 如果为 false菜单项将完全隐藏。
* `checked` Boolean (可选) - 只为 `checkbox``radio` 类型的菜单项。
* `submenu` (MenuItemConstructorOptions[] | Menu) (可选) - 应当作为 `submenu` 菜单项的特定类型,当它作为 `type: 'submenu'` 菜单项的特定类型时可以忽略。如果它的值不是 `Menu`,将自动转为 `Menu.buildFromTemplate`
* `id` String (可选) - 菜单的唯一标识。如果被定义使用,它将被用作这个菜单项的参考位置属性。
* `position` String (可选) - 定义菜单的具体指定位置信息。
### Roles
Roles 允许菜单项有预定义的行为。最好为每个菜单项指定一个行为,而不是自己实现一个 `click` 函数中的行为。内置的 `role` 行为将提供最好的原生体验。
当使用 `role` 时,`label` 和 `accelerator` 的值是可选的,会针对每个平台设置默认值。
`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' 时,`label` 和 `accelerator` 是影响MenuItem的唯一的选项
所有其他选项将被忽略。
### 实例属性
`MenuItem` 对象拥有以下属性:
#### `menuItem.enabled`
一个布尔值表示是否启用该项,此属性可以动态改变。
#### `menuItem.visible`
一个布尔值表示是否可见,此属性可以动态改变。
#### `menuItem.checked`
一个布尔值表示是否选中该项,此属性可以动态改变。
`checkbox` 菜单项将在选中和未选中切换 `checked` 属性。
`radio` 菜单项将在选中切换 `checked` 属性,并且
将关闭同一菜单中所有相邻项目的属性。
您可以为其他行为添加一个 `click` 函数。
#### `menuItem.label`
一个表示菜单项可见标签的字符串
#### `menuItem.click`
当 MenuItem 接收到点击事件时触发的函数