Electron官方文档(v1.6.1)中文翻译

16. Tray

2017-03-15  本文已影响159人  Shmily落墨

原文:https://github.com/electron/electron/blob/master/docs/api/tray.md
译者:Lin

添加图标和右键菜单到系统的通知区域

进程:主进程

Tray是一个EventEmitter

const {app, Menu, Tray} = require('electron')

let tray = null
app.on('ready', () => {
tray = new Tray('/path/to/my/icon')
const contextMenu = Menu.buildFromTemplate([
    {label: 'Item1', type: 'radio'},
    {label: 'Item2', type: 'radio'},
    {label: 'Item3', type: 'radio', checked: true},
    {label: 'Item4', type: 'radio'}
])
tray.setToolTip('This is my application.')
tray.setContextMenu(contextMenu)
})

平台的局限性:

const {app, Menu, Tray} = require('electron')

let appIcon = null
app.on('ready', () => {
   appIcon = new Tray('/path/to/my/icon')
   const contextMenu = Menu.buildFromTemplate([
       {label: 'Item1', type: 'radio'},
       {label: 'Item2', type: 'radio'}
   ])

   // Make a change to the context menu
   contextMenu.items[1].checked = false

   // Call this again for Linux because we modified the context menu
   appIcon.setContextMenu(contextMenu)
})

如果你想在所有平台上保持完全相同的行为,你需要不依赖点击事件并且将右键菜单依附在托盘图标上。

new Tray(image)

通过image创建一个托盘图标。

实例的事件

Tray模块分发以下事件:

事件: 'click'

当托盘图片被点击的时候被分发。

事件: 'right-click' MacOS Windows

当托盘图片被右键点击的时候被分发。

事件: 'double-click' MacOS Windows

当托盘图片被双击的时候被分发。

事件: 'balloon-show' Windows

当托盘气球展示的时候被分发。

事件: 'balloon-click' Windows

当托盘气球被点击的时候被分发。

事件: 'balloon-closed' Windows

当托盘气球因为超时关闭或者用户手动点击关闭时被分发。

事件: 'drop' MacOS

任何被拖动的项目被拖动到托盘图标上的时候被分发。

事件: 'drop-files' MacOS

被拖动的文件拖动到托盘图标里面的时候被分发。

事件: 'drop-text' MacOS

被拖动的文本拖动到托盘图标里面的时候被分发。

事件: 'drag-enter' MacOS

当一个拖动操作进入到托盘图标的时候被分发。

事件: 'drag-leave' MacOS

当一个拖动操作离开托盘图标的时候被分发。

事件: 'drag-end' MacOS

当拖动操作在托盘图标上释放或在其他的位置释放时被分发。

实例的方法

Tray类有以下方法:

tray.destroy()

立刻销毁托盘图标。

tray.setImage(image)

设置托盘图标。

tray.setPressedImage(image) MacOS

设置MacOS下按下托盘图标是的托盘图标。

tray.setToolTip(toolTip)

设置托盘图标的悬停文本。

tray.setTitle(title) MacOS

设置显示在状态栏中托盘图标旁边的文字。

tray.setHighlightMode(mode) MacOS

设置什么时候托盘的图标背景变成高亮状态(蓝色)。

注意:当窗口是否可见状态改变的时候,你可以使用BrowserWindowhighlightMode'never''always'模式指尖切换。

const {BrowserWindow, Tray} = require('electron')

const win = new BrowserWindow({width: 800, height: 600})
const tray = new Tray('/path/to/my/icon')

tray.on('click', () => {
    win.isVisible() ? win.hide() : win.show()
})
win.on('show', () => {
    tray.setHighlightMode('always')
})
win.on('hide', () => {
    tray.setHighlightMode('never')
})

tray.displayBalloon(options) Windows

展示一个托盘气球。

tray.popUpContextMenu([menu, position]) MacOS Windows

弹出一个托盘图标的右键菜单。当menu参数被设置,menu将被展示代替托盘图标的右键菜单。

position只在Windows中有效,并且默认值是(0, 0)

tray.setContextMenu(menu)

给这个托盘图标设置右键菜单。

tray.getBounds() MacOS Windows

返回值为Rectangle类型

作为Object的托盘图标的bounds

tray.isDestroyed()

返回值为Boolean类型 - 托盘图标是否被销毁。

上一篇下一篇

猜你喜欢

热点阅读