我们有一个基于电子(v4.0.1)的应用程序(React),它使用<input type="file"...>
打开标准文件选择对话框。在Windows / Linux上,当用户点击主应用程序时,文件对话框将保留在主应用程序UI的顶部。但是在Mac(OSX)上,主应用程序UI将覆盖文件对话框(现在已从视图中消失),重新聚焦的唯一方法是alt + tab直到它出现。
无论如何我们可以避免这种行为,并且当用户点击主应用程序时(如在Windows / Linux中),文件对话框仍然是最关注的?
为了解决这个问题,有一个Electron模块可以让你用你想要的规格创建原生(文件)对话框。
创建没有任何过滤器的模态浏览器窗口(如目录打开,多选或文件类型过滤器)就像下面的代码片段一样简单:
const { dialog, remote } = require ("electron");
var selected = dialog.showOpenDialog (
remote.getCurrentWindow (),
{ properties: ["openFile"] }
);
if (typeof selected === "undefined") {
// Oh no! The user didn't select anything!
} else {
// ...
}
qazxsw poop有一些使用这个API的更复杂的例子。