托盘在不同操作系统下有不同控制的抽象。它通常存在于系统的通知区域,在苹果系统成为状态项,在GTK称为状态图标,在Window系统下称为系统托盘图标。
(一)例子
<script>
var isShowWindow = true;
// Load native UI library
var gui = require('nw.gui');
var win = gui.Window.get();
var tray = new gui.Tray({
title: '托盘图标',
icon: '1.png'
});
tray.tooltip = '点此打开';
//添加一个菜单
var menu = new gui.Menu();
menu.append(new gui.MenuItem({
type: 'checkbox',
label: 'box1'
}));
menu.append(new gui.MenuItem({
label: '退出',
click: function() {
tray.remove();
tray = null;
win.close();
}
}));
tray.menu = menu;
//click事件
tray.on('click',
function() {
if (isShowWindow) {
win.hide();
isShowWindow = false;
} else {
win.show();
isShowWindow = true;
}
}
);
</script>
(二)函数参考
new Tray(option)
创建一个托盘,option是初始化托盘的对象,属性包括title, tooltip, icon 和 menu.
注意:每个应用智能创建一个托盘。
Tray.title
获取或设置托盘的名称。这个属性目前只对苹果系统有限,会和状态项在一起显示在苹果系统状态栏中。对GTK和Window没有效果,在这两个系统中只显示托盘图标。
Tray.tooltip
获取或设置托盘的tooltip,及鼠标移到托盘处显示的介绍文字。
Tray.icon
获取或设置托盘图标。图标需指向一个图标路径,可以是应用的相对路径,也可以是系统的绝对路径。
Tray.alticon
获取或设置备用托盘。只对苹果系统有效。
Tray.menu
获取或设置托盘菜单栏。当你点击到托盘时,将会显示菜单栏。
在苹果系统中你需要点击图盘才会显示。而在Windows 和 Linux中,你只需要右击托盘即可显示。
Tray.remove()
移除托盘。一旦移除托盘,记得要把托盘对象设为null
最后,补充一下,托盘目前只支持click事件。点击托盘时可根据应用做出相应的响应。