我正在使用Electron,并且正在为我的应用程序创建一个托盘图标。 Electron自己的文档(https://electronjs.org/docs/api/tray#tray-popupcontextmenu-position-os-x-windows)显示,我可以在菜单上使用以下代码选择单选按钮:
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)
})
这将创建按钮,但是我在文档的任何地方都找不到如何获取事件以及如何从这些按钮读取数据的信息。怎么样?
答案 0 :(得分:1)
Menu.buildFromTemplate
时,您实际上定义了MenuItem
个对象。
具有签名click(menuItem, browserWindow, event)
的click回调使您几乎可以从包含的BrowserWindow中访问任何内容
例如
const handleClick = (menuItem, browserWindow, event) => {
// ...
}
const contextMenu = Menu.buildFromTemplate([
{label: 'Item1', type: 'radio', click: handleClick},
{label: 'Item2', type: 'radio', click: handleClick},
{label: 'Item3', type: 'radio', click: handleClick, checked: true},
{label: 'Item4', type: 'radio', click: handleClick}
])