dialog.showMessageBoxSync(null, options) 被隐藏

dialog.showMessageBoxSync(null, options) getting hidden

我有一个 Electron 应用程序。如果我正常使用 dialog.showmessageBoxSync 它必须等待用户输入。选项有:关闭、取消或确定。

它工作正常,但如果我在对话框外(我的应用程序内的任何位置)单击,则此消息框会隐藏。我无法点击任何选项。

如何使消息框保持焦点,直到用户选择要单击的按钮或关闭对话框?在继续使用应用程序的其余部分之前,应该强制用户响应消息框。

dialog.showMessageBoxSync({
                    type: "info",
                    buttons: ["Ok,", "Cancel"],
                    defaultId: 0,
                    title: "",
                    message:""
                    cancelId: 1,
})

我建议传递父级 window

来自docs

The browserWindow argument allows the dialog to attach itself to a parent window, making it modal.


 const iconPath = upath.toUnix(upath.join(__dirname, "app", "assets", "icon.png"));
    const dialogIcon = nativeImage.createFromPath(iconPath);

    var options = {
        type: 'question',
        buttons: ['&Yes', '&No'],
        title: 'Confirm Quit',
        icon: dialogIcon,
        normalizeAccessKeys: true,
        message: 'Do you really want to close the application?'
    };

    const win = BrowserWindow.getFocusedWindow();
    dialog.showMessageBox(win, options)
        .then((choice) => {
            if (choice.response === 0) {
                quitApplication();
            }
        }).catch(err => {
            console.log('ERROR', err);
        });