Mac OSX上的Electron应用程序,用于文件选择的输入

时间:2019-02-08 16:29:56

标签: html reactjs macos electron

我们有一个基于Electron(v4.0.1)的应用程序(React),该应用程序使用<input type="file"...>打开了一个标准文件选择对话框。在Windows / Linux上,当用户单击主应用程序时,文件对话框将保留在主应用程序UI的顶部。但是,在Mac(OSX)上,主应用程序用户界面将覆盖文件对话框(现已从视图中消失),并且重新聚焦的唯一方法是按alt + tab直到出现。

无论如何,当用户单击主应用程序时(如在Windows / Linux中),我们是否可以避免这种行为并使文件对话框保持最突出的焦点?

1 个答案:

答案 0 :(得分:1)

为解决此问题,有一个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 {
    // ...
}

The documentation on dialog还有一些使用此API的复杂示例。