javascript - “autohideMenuBar”的动态切换不起作用吗?
问题描述
电子 7.1.10,Windows 10
当我的应用程序进入全屏时,我试图关闭菜单可见性并使其“自动隐藏”,以便可以通过 Alt 键访问它。下面的代码确实将其关闭,但没有启用“通过 Alt 键显示”行为。
我试过注释掉这些mainindow.setMenuBarVisibility();
调用,因为这可能是绝对的:菜单永远不会显示,但菜单仍然全屏显示。我也尝试过更改顺序,以便mainindow.autohideMenuBar = true
在将可见性设置为 false 之前调用。没运气。
有人遇到过这种情况么?
BrowserWindow文档似乎表明我正在尝试做的事情应该有效:
win.setMenuBarVisibility(visible) Windows Linux
visible Boolean
设置菜单栏是否可见。如果菜单栏是自动隐藏的,用户仍然可以通过按单个 Alt 键来调出菜单栏。
if (mainindow.isFullScreen()) {
// coming out of full screen
mainindow.setMenuBarVisibility(true);
mainindow.autohideMenuBar = false
mainindow.setFullScreen(false);
} else {
// entering full screen
mainindow.setMenuBarVisibility(false);
mainindow.autohideMenuBar = true
mainindow.setFullScreen(true);
}
解决方案
因此设置属性不起作用,但使用较旧的方法setAutoHideMenuBar
可以 - 尽管文档声明不推荐使用。似乎是一个错误。
Electron 团队目前正在进行一项计划,将 Electron 中单独的 getter 和 setter 函数转换为具有 get 和 set 功能的定制属性。在此过渡期间,这些函数的新属性和旧 getter 和 setter 都将正常工作并记录在案。
win.setAutoHideMenuBar(隐藏)
hide Boolean
设置窗口菜单栏是否应自动隐藏。一旦设置,菜单栏只会在用户按下单个 Alt 键时显示。
如果菜单栏已经可见,调用 setAutoHideMenuBar(true) 不会立即隐藏它。
已弃用
if (mainWindow.isFullScreen()) {
// coming out of FS
// mainWindow.autohideMenuBar = false
mainWindow.setAutoHideMenuBar(false);
mainWindow.setMenuBarVisibility(true);
mainWindow.setFullScreen(false);
} else {
// mainWindow.autohideMenuBar = true
mainWindow.setAutoHideMenuBar(true);
mainWindow.setMenuBarVisibility(false);
mainWindow.setFullScreen(true);
}
推荐阅读
- asp.net - Azure AD 中的 jwt-bearer 代表授权问题
- html - 使用类更改ul li中的字体颜色
- ansible - Make ansible ignore variable in template when checking changed state
- javascript - Javascript - 按钮的 rowIndex 在表格中不起作用
- kotlin - 有没有办法在 Kotlin 单例对象上隐藏实例变量
- user-interface - JavaFX 聊天窗口,如 Facebook 聊天
- python-3.x - 在 Pandas 中打开 csv 文件后将 int 分配给字符串值
- numpy - 使用 pyspark 创建和操作 numpy 数组并使用数据
- swift - 未调用 AppDelegate applicationDidFinishLaunching
- java - 如何制作一个接受任何类型变量的 Java 函数?