菜单项

MenuItem作为菜单项,可由分隔符或正常项组成,其中正常项通常包括了图文标签,以响应鼠标或键盘操作.

示例

var item;
// 创建分隔符
item = new nw.MenuItem({ type: 'separator' });
// 创建具有图文的正常项
item = new nw.MenuItem({
  type: "normal",
  label: "菜单项",
  icon: "img/icon.png"
});
// 也省略正常项的type字段
item = new nw.MenuItem({ label: '简单菜单项' });
// 为菜单项绑一个点击回调
item = new nw.MenuItem({
  label: "点我",
  click: function() {
    console.log("你刚刚点了我");
  },
  key: "s",
  modifiers: "ctrl+alt",
});
// 还可以创建子菜单!
var submenu = new nw.Menu();
submenu.append(new nw.MenuItem({ label: '菜单项 1' }));
submenu.append(new nw.MenuItem({ label: '菜单项 2' }));
submenu.append(new nw.MenuItem({ label: '菜单项 3' }));
item.submenu = submenu;
item.label = '新的菜单项';
item.click = function() { console.log('新菜单项的回调'); };

new MenuItem(option)

MenuItem 源自 EventEmitter.您可以使用 on进行监听,菜单项属性详情请参考下文.

item.type

用途:设置或获取 MenuItem对象中设置的可选类型: normal, checkbox, separator

请注意,类型仅在创建时进行设置,无法在已运行时更改.

item.label

用途:设置或获取 MenuItem对象中设置的 label文本描述

item.icon

用途:设置或获取 MenuItem对象中设置的 icon图标

icon即图标文件路径,可以指向应用内置图标的相对路径,也可以是系统中的文件的绝对路径

请注意, separator 类型的菜单项图标是无效的.

item.iconIsTemplate (Mac)

用途:设置或获取 MenuItem对象中设置的 icon是否模板图标, 默认 true

设置为 true时, icon 将被视为 模板图像,可配合系统状态(如灰暗/明亮模式)等自动确保所需样式.板图像应该仅由黑色和清晰的颜色组成,并且可以使用图像中的Alpha通道来调整黑色内容的不透明度。

item.tooltip (Mac)

用途:设置或获取 MenuItem对象中设置的 tooltip悬停文本提示

tooltip即鼠标悬停在菜单项时希望显示的内容提示,它是 MenuItem中的一个String属性.

item.checked

用途:设置或获取 MenuItem对象中设置的 checked是否勾选复选框

左侧有个指示本项是否已勾选的标记

item.enabled

用途:设置或获取 MenuItem对象中设置的 enabled启用或禁用本项

禁用后,菜单项文本变灰并且无法点击和响应.

item.submenu

用途:设置或获取 MenuItem对象中设置的 submenu子菜单项

submenu也是个 Menu 对像,子菜单项应该在创建整个菜单进行设置而非已运行时进行修改,因为某些平台这样的修改会很卡.

item.click

用途:设置或获取 MenuItem对象中设置的 click键盘或鼠标点击的响应回调

item.key

用途:设置或获取 MenuItem对象中设置的 key快捷键

所有平台的有效键

Mac系统专用键

可使用 String.fromCharCode(specialKey).调用专用键,列表如下:

有关专用键相关列表,请参阅:

item.modifiers

用途:设置或获取 MenuItem对象中设置的 modifiers快捷键提示

快捷键提示是当组合键时以 +相连的文本串,例如: cmd , command, super, shift, ctrl, alt, "cmd+shift+alt".

cmd在各平台的差异: Windows 和 Linux中的Windows key (Windows) ,Mac中是Apple key () .

supercommand都是 cmd的别名.

事件: click

触发:点击菜单项时