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)
  })
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章