问题描述:electron新开一个窗口,在弹出警报窗口后该页面输入框获取不到焦点,无法编辑;直到最小化应用程序并将其最大化,或者将焦点放在另一个窗口上,然后再次将焦点放在应用程序上。
在main.js中加入下面这段
const isWindows = process.platform === 'win32';
let needsFocusFix = false;
let triggeringProgrammaticBlur = false;
win.on('blur', (event) => {
if(!triggeringProgrammaticBlur) {
needsFocusFix = true;
}
})
win.on('focus', (event) => {
if(isWindows && needsFocusFix) {
needsFocusFix = false;
triggeringProgrammaticBlur = true;
setTimeout(function () {
win.blur();
win.focus();
setTimeout(function () {
triggeringProgrammaticBlur = false;
}, 100);
}, 100);
}
})