nw.js node-webkit系列(8)Native UI API MenuItem的使用

菜单项MenuItem在菜单里代表其中一个选项。它可以作为分割线也可以作为一个普通的选项,但它必须具备标题和图标,菜单项通常情况下会跟菜单Menu一起使用。

(一)例子

// Load native UI library
var gui = require('nw.gui');
var item;

// Create a separator
item = new gui.MenuItem({ type: 'separator' });

// Create a normal item with label and icon
item = new gui.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 gui.MenuItem({ label: 'Simple item' });

// Bind a callback to item
item = new gui.MenuItem({
  label: "Click me",
  click: function() {
    console.log("I'm clicked");
  },
  key: "s",
  modifiers: "ctrl-alt",
});

// You can have submenu!
var submenu = new gui.Menu();
submenu.append(new gui.MenuItem({ label: 'Item 1' }));
submenu.append(new gui.MenuItem({ label: 'Item 2' }));
submenu.append(new gui.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参数是一个设置菜单项的对象。它的属性包括label, icon, tooltip, type, click, checked, enabled, submenu, key 和 modifiers。下面会详细介绍每个属性值。

MenuItem.type
获取一个菜单项的类型,它的类型到目前为止包括separator, checkbox and normal。
菜单项的类型只能在创建的时候设置,创建后不能改变菜单项的类型。

MenuItem.label
获取或设置菜单项的标题,现在只支持纯文本设置。

MenuItem.icon
获取或设置菜单项图标,图标必须设置一个路径,这个路径可以是应用的相对路径,也可以是系统里的绝对路径。对一个分割线类型的菜单项设置图标将无效。
var subMenuItem = new gui.MenuItem({ label: '子菜单项', icon: '2655716405282662783.png' });

MenuItem.tooltip
获取或设置菜单项的tooltip,它就是当鼠标滑动到菜单上显示的文本信息,目前只能设置为纯文本。

MenuItem.checked
获取或设置菜单项是否被选中,通常被选中的情况下,会在选项左边有一个标志。这主要是用来说明是否有选择权。

MenuItem.enabled
获取或者设置menuitem的enaled属性,enabled设置为false的menuitem不可被选中。

MenuItem.submenu
获取或者设置菜单项的子菜单,这个submenu必须是一个Menu类型的对象。开发者们最好在使用submenu时在初始化菜单项时设置。

MenuItem.click
获取或设置点击事件回调函数。

MenuItem.key
通过快捷键来控制菜单项。详细看https://github.com/nwjs/nw.js/wiki/MenuItem

MenuItem.modifiers
通过组合键来控制菜单项。详细看https://github.com/nwjs/nw.js/wiki/MenuItem

结尾,提醒大家一下可以通过MenuItem.on()来监听菜单项的事件。
更多详细的事件监听可以参考:
https://nodejs.org/api/events.html#events_event_removelistener
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值