当应用程序在 Windows 上全屏显示时隐藏窗口菜单?

No *_*ing 4 javascript electron

我有一个在 OSX 和 Windows 上运行的 Electron 应用程序。当 Windows 版本全屏时,它仍然显示菜单栏,但我希望它不要显示。基本上我想要 OSX 上发生的情况:当应用程序“全屏”时,不应出现菜单栏或窗口“chrome”。

\n\n

我试过了setAutoHideMenuBar我在窗口设置期间我是否错误地使用了它或误解了它的用途?

\n\n

我看过一些 QA 的建议setMenu(null),但这不会完全破坏菜单吗?我确实想要在窗口模式下或(在 Windows 上)按下 Alt 键时的菜单。

\n\n
\n\n
   mainWindow = new BrowserWindow({\n        show: false,\n        width: 1024,\n        height: 768,\n        minWidth: 400,\n        minHeight: 200,\n        resizable: true,\n        backgroundColor: \'#222\',\n        center: true,\n        setAutoHideMenuBar: true\n    });\n
Run Code Online (Sandbox Code Playgroud)\n\n

来自文档

\n\n
\n

win.setAutoHideMenuBar(隐藏)

\n\n
hide Boolean\n
Run Code Online (Sandbox Code Playgroud)\n\n

设置窗口菜单栏是否自动隐藏。\n 设置后,菜单栏将仅在用户按下单个 Alt\n 键时显示。

\n\n

如果菜单栏已经可见,调用 setAutoHideMenuBar(true)\n 不会立即隐藏它。

\n
\n\n

来自文档

\n\n
\n

win.setMenuBarVisibility(可见) Windows Linux

\n\n
visible Boolean\n
Run Code Online (Sandbox Code Playgroud)\n\n

设置菜单栏是否可见。如果菜单栏自动隐藏,用户仍然可以通过按单个 Alt 键来调出菜单栏。

\n
\n\n

来自文档

\n\n
\n

win.setMenu(菜单) Linux Windows

\n\n
menu Menu\n
Run Code Online (Sandbox Code Playgroud)\n\n

将菜单设置为窗口\xe2\x80\x99s菜单栏,将其设置为空将删除菜单栏。

\n
\n

No *_*ing 5

我的一个错误和“去计算”

  1. 我误用了该setAutoHideMenuBar命令,试图在创建窗口时将其用作选项。正确的选项语法是autoHideMenuBar: true.

app.on('ready', function () {
    mainWindow = new BrowserWindow({
        show: false,
        width: 1024,
        height: 768,
        minWidth: 400,
        minHeight: 200,
        resizable: true,
        backgroundColor: '#222',
        center: true,
        autoHideMenuBar: true
    }); 
Run Code Online (Sandbox Code Playgroud)
  1. 为了处理全屏切换,在设置菜单时我使用了快捷方式

    role: 'togglefullscreen'

虽然这有效并且包括键盘加速器,但菜单栏始终出现并且该autoHideMenuBar设置显然被忽略。我不明白为什么。因此,我使用这个而不是快捷方式,并且菜单栏正确隐藏。

            {
                label: 'Toggle Full Screen',
                click: () => { toggleFullscreen();},
                accelerator: 'CmdOrCtrl+f'
            }
Run Code Online (Sandbox Code Playgroud)
function toggleFullscreen() {
    if (mainWindow.isFullScreen()) {
        mainWindow.setFullScreen(false);
    } else {
        mainWindow.setFullScreen(true);
    }
}
Run Code Online (Sandbox Code Playgroud)