在 Angular js中升级到iOS 10后,iOS键盘没有被隐藏

标签 ios angularjs angularjs-directive ios10

我最近将设备更新到 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/

相关文章:

javascript - Angular JS 中未显示错误消息

AngularJS:ng-repeat 中的 ng-model?

javascript - Jcrop 将旋转整合到

ios - 如何在 UIKit 中调试谁在吃我的触摸?

ios - 未知类型名称 'SKPaymentDiscount' 。 FBSDK核心套件

javascript - NgRoute 不可用

javascript - 下拉加上angularjs和bootstrap中的输入文本

angularjs - 如何强制重新验证表单?

ios - 当呈现 Controller 为模式时,未调用 UIAlertAction 闭包

ios - UIDocumentPickerViewController 以阿拉伯语显示翻转的内容