當我們使用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)
})
}