当窗口最小化电子时,window.maximize()失败

时间:2017-07-12 20:57:40

标签: electron trayicon tray

我创建了一个带托盘图标的电子应用程序。 当我右键单击托盘图标时,我会显示一个包含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 有什么想法吗?谢谢

2 个答案:

答案 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()