设置browserWindow始终在最顶层,甚至其他应用程序也在全屏[电子,MAC OS]

时间:2016-10-03 15:34:38

标签: macos window electron

可以在Electron Framework中使用自定义窗口级别,因为make窗口始终位于顶部,甚至其他应用程序也是全屏的?

对于原生MacOS应用,我发现了这个:https://stackoverflow.com/a/27397096/5838242

他说的话:

window.level = Int(CGWindowLevelForKey(kCGMaximumWindowLevelKey))

在电子上,我有一个浏览器窗口:

mainWindow = new BrowserWindow({width: 1400, height: 50, resizable: false, alwaysOnTop: true, y: 0, x: 0, minimizable: false, title: 'CD App', frame: false, titleBarStyle: 'hidden', type: 'desktop' });

我知道'type'参数是POINT,但是这个参数只有两个选项:

  

在macOS上,可能的类型是桌面,纹理。   纹理类型添加金属渐变外观(NSTexturedBackgroundWindowMask)。   桌面类型将窗口置于桌面背景窗口级别(kCGDesktopWindowLevel - 1)。请注意,桌面窗口不会接收焦点,键盘或鼠标事件,但您可以使用globalShortcut来节省输入。

那么,有可能做这件事吗?

1 个答案:

答案 0 :(得分:3)

从Electron 1.4.2开始,setAlwaysOnTop() API会使用可选的level参数来调整窗口级别,您可以像这样使用它:

mainWindow = new BrowserWindow({ ... });
mainWindow.setAlwaysOnTop(true, 'screen');

请参阅文档了解可选参数的所有可能值,我不确定screen是您在这种情况下所需的值,您需要进行试验。