当我们使用electron 的dialog功能的时候,会调用本地的系统对话框,一般情况下不会出现什么问题,点击按钮触发的情况下,多次点击会弹出多个dialog,总归是不好的,还是应该把对话框给限定一下,而且这样可以保证dialog弹出会在最顶层。
官方文档中没有看到dialog的这个方法或者属性,我一般用的是 dialog.showOpenDialog([browserWindow, ]options) 这个方法不过提到了 dialog.showOpenDialogSync([browserWindow, ]options) 这个方法可以作为同步调用返回,以后可能会用上,mark一下。
一般我们调用dialog的时候:
const BrowserWindow = require('electron').BrowserWindow;
mainWindow = new BrowserWindow();
function click(){
dialog.showOpenDialog(mainWindow, {
properties: ['openFile', 'openDirectory']
}).then(result => {
console.log(result.canceled)
console.log(result.filePaths)
}).catch(err => {
console.log(err)
})
}
只需要再dialog前面加上即可:
const BrowserWindow = require('electron').BrowserWindow;
mainWindow = new BrowserWindow();
function click(){
mainWindow.focus(); // 在这里
dialog.showOpenDialog(mainWindow, {
properties: ['openFile', 'openDirectory']
}).then(result => {
console.log(result.canceled)
console.log(result.filePaths)
}).catch(err => {
console.log(err)
})
}
请登录后查看回复内容