在渲染器窗口中单击按钮时,我在Electron中调用简单的showOpenDialog系统对话框。
问题是当多次点击按钮时,新的showOpenDialog
弹出窗口会在旧的弹出窗口上打开。
如何关注首次打开的对话框并且如果已经打开了对话框,则不允许重新打开新对话框?
优选地,当showOpenDialog
已经打开时,它应该阻止调用渲染器进程窗口,直到关闭对话框弹出窗口。类似的行为已经有dialog.showMessageBox
答案 0 :(得分:1)
答案 1 :(得分:0)
将此代码添加到main.js文件下
let mainWindow = null;
const isSecondInstance = app.makeSingleInstance((commandLine, workingDirectory) => {
if (mainWindow) {
if (mainWindow.isMinimized()) mainWindow.restore()
mainWindow.focus()
}
})
if (isSecondInstance) {
app.quit()
}
答案 2 :(得分:0)
这对我来说一次只能弹出一个对话框。希望它会有所帮助。
transferArrayItem(
event.previousContainer.data,
event.container.data,
event.previousIndex,
event.currentIndex);
this.service.asyncItem(itemToUpdate).toPromise().catch(() => {
transferArrayItem(
event.container.data,
event.previousContainer.data,
event.currentIndex,
event.previousIndex);
this.cdr.detectChanges();
});