我创建了一个带托盘图标的电子应用程序。 当我右键单击托盘图标时,我会显示一个包含4个选项的菜单:
以下是创建托盘图标的代码:
trayIcon = new Tray('icons/foo.png');
const trayMenuTemplate = [{
label: 'Maximize',
click:(_,window)=>{
window.maximize();
}
}, {
label: 'Minimize',
click:(_,window)=>{
window.minimize();
}
}, {
label: 'Restart'
}, {
type: 'separator'
}, {
label: 'Quit',
role: 'quit'
}];
但是我遇到了问题。当我点击最小化然后我点击最大化我收到错误说Cannnot read property maximize of null
有什么想法吗?谢谢
答案 0 :(得分:2)
您始终可以检查它是否已最小化并将其还原为变通方法。我不认为这是一件大事。
要检查和恢复它,您可以使用:
if (window.isMinimized()) {
window.restore();
}
整件事情都是这样的:
{
label: 'Maximize',
click:(_,window)=>{
if (window.isMinimized()) {
window.restore();
}
window.maximize();
}
}
答案 1 :(得分:1)
托盘未绑定到任何BrowserWindow,因此window
为空。如果您在主程序中创建了托盘菜单,则可以使用mainWindow
参考;如果您在渲染器中,则可以使用remote.getCurrentWindow()
。