electron 只打开一个dialog且始终在最顶层-技术鸭论坛-前端交流-技术鸭(jishuya.cn)

electron 只打开一个dialog且始终在最顶层

当我们使用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)
  })
}

 

请登录后发表评论

    请登录后查看回复内容