我最近将设备更新到 iOS 10,当我从一个 View 切换到另一个 View 时面临隐藏 iOS 键盘的问题。它在 iOS 9.3 上运行良好。
以编程方式我所做的是,当我导航到第二个 View 时,我拦截了一些元素并自动聚焦一个输入框。当我回到第一个 View 时,它被隐藏了,但现在有了 10.0,它不会自动隐藏它。
由于隐私问题,我不能在这里发布我的代码,但这是一个 Angular 代码,我在其中编写了一个指令,该指令拦截在第二个 View 中对输入框的点击并自动聚焦相同的内容,从而使键盘弹出.
现在我的要求是当我回到第一个 View 时隐藏这个键盘。
由于 iOS 10 最近发布,我们将不胜感激任何对此的帮助或建议。
注意:一切都适用于 iOS 8 和 9。
这是我尝试过的:
尝试隐藏事件的 DOM 元素。
document.activeElement.blur();
还尝试通过将 $element 的 target 属性传递给指令中的链接函数来调用 blur。
最佳答案
看起来这是 safari 中的一个错误。我今天遇到了同样的问题,并且能够用这个 fiddle 重现它:
https://jsfiddle.net/Lz652478/6/
看起来如果通过 touch
事件从 dom 中删除输入,键盘将变得粘滞。我已经能够在我的应用程序中绕过它,方法是在我的事件处理程序开始时手动调用 blur
,在路由更改和输入从 dom 中删除之前。
关于在 Angular js中升级到iOS 10后,iOS键盘没有被隐藏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39616204/