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);
});
我有一个 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);
});