菜单项

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

示例

  1. var item;
  2.  
  3. // 创建分隔符
  4. item = new nw.MenuItem({ type: 'separator' });
  5.  
  6. // 创建具有图文的正常项
  7. item = new nw.MenuItem({
  8. type: "normal",
  9. label: "菜单项",
  10. icon: "img/icon.png"
  11. });
  12.  
  13. // 也省略正常项的type字段
  14. item = new nw.MenuItem({ label: '简单菜单项' });
  15.  
  16. // 为菜单项绑一个点击回调
  17. item = new nw.MenuItem({
  18. label: "点我",
  19. click: function() {
  20. console.log("你刚刚点了我");
  21. },
  22. key: "s",
  23. modifiers: "ctrl+alt",
  24. });
  25.  
  26. // 还可以创建子菜单!
  27. var submenu = new nw.Menu();
  28. submenu.append(new nw.MenuItem({ label: '菜单项 1' }));
  29. submenu.append(new nw.MenuItem({ label: '菜单项 2' }));
  30. submenu.append(new nw.MenuItem({ label: '菜单项 3' }));
  31. item.submenu = submenu;
  32.  
  33. item.label = '新的菜单项';
  34. item.click = function() { console.log('新菜单项的回调'); };

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 源自 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).调用专用键,列表如下:

  • 28: Left (←)
  • 29: Right (→)
  • 30: Up (↑)
  • 31: Down (↓)
  • 27: Escape (⎋)
  • 11: PageUp (⇞)
  • 12: PageDown (⇟)

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

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

触发:点击菜单项时