菜单项
MenuItem
代表菜单中的一个项目。MenuItem
可以是分隔符,也可以是具有标签和图标的普通项目或复选框。它可以响应鼠标点击或键盘快捷键。
概要
var item; // Create a separator item = new nw.MenuItem({ type: 'separator' }); // Create a normal item with label and icon item = new nw.MenuItem({ type: "normal", label: "I'm a menu item", icon: "img/icon.png" }); // Or you can omit the 'type' field for normal items item = new nw.MenuItem({ label: 'Simple item' }); // Bind a callback to item item = new nw.MenuItem({ label: "Click me", click: function() { console.log("I'm clicked"); }, key: "s", modifiers: "ctrl+alt", }); // You can have submenu! var submenu = new nw.Menu(); submenu.append(new nw.MenuItem({ label: 'Item 1' })); submenu.append(new nw.MenuItem({ label: 'Item 2' })); submenu.append(new nw.MenuItem({ label: 'Item 3' })); item.submenu = submenu; // And everything can be changed at runtime item.label = 'New label'; item.click = function() { console.log('New click callback'); };
new MenuItem(option)
option
{Object}
包含MenuItem
的初始设置的对象label
{String}
可选 普通项目或复选框的标签icon
{String}
可选 普通项目或复选框的图标tooltip
{String}
可选 普通项目或复选框的工具提示type
{String}
可选 项目的类型。接受三种类型:normal
、checkbox
、separator
click
{Function}
可选 当项目被鼠标点击或键盘快捷键触发时的回调函数enabled
{Boolean}
可选 项目是否启用或禁用。默认设置为true
。checked
{Boolean}
可选 复选框是否选中。默认设置为false
。submenu
{Menu}
可选 子菜单key
{String}
可选 快捷键的键modifiers
{String}
可选 快捷键的修饰键
每个字段在 MenuItem
中都有自己的属性,有关详细信息,请参阅每个属性的文档。
MenuItem
继承自 EventEmitter
。您可以使用 on
监听事件。
item.type
获取 MenuItem
的 type
,它可以是 separator
、checkbox
和 normal
。
注意
类型只能在创建时设置。它不能在运行时更改。
item.label
获取或设置 MenuItem
的 label
,目前它只能是纯文本。
item.icon
获取或设置 MenuItem
的 icon
,它必须是您图标文件的路径。它可以是相对于您的应用程序的图标的相对路径,也可以是指向用户系统中文件的绝对路径。
它对设置 separator
项目的 icon
没有影响。
item.iconIsTemplate (Mac)
获取或设置 icon
图像是否被视为“模板”(默认情况下为 true
)。当属性设置为 true
时,图像被视为“模板”,系统会根据状态项的不同状态(例如,深色菜单、浅色菜单等)自动确保适当的样式。模板图像应仅包含黑色和透明颜色,并且可以使用图像中的 alpha 通道来调整黑色内容的不透明度。它对 Linux 和 Windows 没有影响。
item.tooltip (Mac)
获取或设置 MenuItem
的 tooltip
,它只能是纯文本。tooltip
是一个简短的字符串,描述了菜单项,当您将鼠标悬停在该项上时,它将显示。
item.checked
获取或设置 MenuItem
是否 checked
。通常,如果 MenuItem
被选中。它的左侧将有一个标记。它主要用于指示选项是否开启。
item.enabled
获取或设置 MenuItem
是否 enabled
。禁用的 MenuItem
将变灰,您将无法点击它。
item.submenu
获取或设置 MenuItem
的 submenu
,submenu
必须是 Menu
对象。您应该在创建 MenuItem
时在 option
中设置 submenu
。在运行时更改它在某些平台上速度很慢。
item.click
获取或设置 MenuItem
的 click
回调,click
必须是一个有效的函数。当用户激活该项目时,它将被调用。
item.key
一个单字符字符串,用于指定菜单项的快捷键。
所有平台的有效键
- 字母:
a
-z
- 数字:
0
-9
- 主区域的其他键:
[
,]
,'
,,
,.
,/
,`
,-
,=
,\
,'
,;
,Tab
Esc
向下
,向上
,向左
,向右
- W3C DOM Level 3 KeyboardEvent 键值:
KeyA
(与A
相同),Escape
(与Esc
相同),F1
,ArrowDown
(与Down
相同) 等等。
仅限 Mac 的特殊键
在 Mac 上,您还可以使用特殊键作为快捷键,使用 String.fromCharCode(specialKey)
。以下是一些有用的键
- 28: 左 (←)
- 29: 右 (→)
- 30: 上 (↑)
- 31: 下 (↓)
- 27: Escape (⎋)
- 11: PageUp (⇞)
- 12: PageDown (⇟)
有关 Mac 上支持的完整特殊键列表,请参阅 NSMenuItem.keyEquivalent 和 NSEvent: Function-Key Unicodes.
item.modifiers
一个字符串,用于指定菜单项快捷键的修饰键。它应该是以下字符串的串联: cmd
/ command
/ super
, shift
, ctrl
, alt
。例如 "cmd+shift+alt"
。
cmd
在所有平台上代表不同的键: Windows 键 (Windows) 在 Windows 和 Linux 上,Apple 键 (⌘) 在 Mac 上。super
和 command
是 cmd
的别名。
事件:click
当用户激活菜单项时发出。