测试 Timeout 之后 focus 在 iOS 中的表现




直接调用 focus 是正常的

focusButton.addEventListener('click', () => {
    textInput.focus();
});


在 iOS 中,在 timeout 里 focus 是无法唤起键盘的

timeoutFocusButton.addEventListener('click', (e) => {
    setTimeout(() => textInput.focus(), 16 );
});


需要先调用 openIosKeyboard 唤起键盘,再调用 timeout 和其中的 focus,就可以保持键盘打开

timeoutFocusButton.addEventListener('click', (e) => {
    openIosKeyboard();
    setTimeout(() => textInput.focus(), 10);
});

参考这个 stack overflow 回答