iOS在UIWebBrowserView上以编程方式禁用Quicktype Keyboard

rub*_*nbs 11 contenteditable ios cordova

我正在为iOS开发PhoneGap应用程序,我需要在键盘上禁用自动预测文本.

我找到了很多UITextView像这样的解决方案:

在UITextView上以编程方式禁用iOS8 Quicktype键盘

ios8 xcode如何在UIKeyboard上删除QuickType(自动完成/自动建议)

...但PhoneGap应用程序UIWebBrowserView内部.

我也知道用于禁用自动预测的html属性.它们只适用于常规的html输入,但我的contenteditable元素是我UIWebBrowserView的文本编辑器的可编辑区域(在我的例子中是CKEditor).

<!-- Does not work -->
<div contenteditable="true" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false">
</div>
Run Code Online (Sandbox Code Playgroud)

那么,有没有办法在iOS上以编程方式禁用自定义元素的自动预测功能?

非常感谢任何帮助!

Tom*_*ift 3

我最近在托管 UIWebView 的本机应用程序(不是 PhoneGap)中遇到了这个问题,并且无法通过更改 HTML 来解决它。我建议向 Apple 提交错误。

我能够使用相当复杂的方案强制键盘显示无 QuickType,我确信该方案不会通过 App Store 指南:

1)留意UIKeyboardWillShowNotification通知

2)当键盘出现时,找到第一个响应者 - 这将是键盘内的一些视图UIWebView

3) 动态地子类化该视图以提供该方法的替代实现textInputTraits(返回一个UITextInputTraits符合要求的对象)。autocorrectionType将此返回对象上的设为UITextAutocorrectionTypeNo

4) 调用reloadInputViews第一响应者视图 - 两次。

我意识到这一切不太可能帮助您或解决您的具体问题,但也许会对某人有所帮助。