立即编辑一个可编辑的 UIWebView
Immediately editing a editable UIWebView
我正在使用启用可编辑 UIWebView
的标准机制(div
标记中的 contenteditable
属性)。
一切都很好 - 当我加载我的视图时,UIWebView
加载,当我单击时,我进入编辑模式。
但是,我想要做的是当我的视图加载时,立即进入编辑模式并让光标从 div
.
的开头开始
有人知道怎么做吗?我尝试使用 stringByEvaluatingJavaScriptFromString
在我的 HTML 中调用一个 JS 方法,该方法在 <div>
上执行 .focus()
但它不起作用。
我认为这与在 Safari 中禁用以编程方式启动键盘有关。默认情况下,UIWebView 不允许以编程方式启动键盘。但是,您可以在创建 UIWebView 时从 Swift 端启用此功能。只需将 keyboardDisplayRequiresUserAction
设置为 false
.
有关详细信息,请参阅 Apple's documentation
注意:我没有对此进行测试,contenteditable
可能还有其他问题,但这是开发移动网络应用程序时的常见问题。
感谢 Teemu 的提示,我终于弄清楚了如何完成这项工作。我必须执行以下操作:
首先,正如 Temmu 提到的,我必须在 viewDidLoad
.
中将 keyboardDisplayRequiresUserAction
设置为 false
其次,假设我的可编辑内容在 <div id="content">...</div>
中,我在 div
之后注入了以下 Javascript :
<script>document.getElementById('content').focus();</script>
有了这两件事,当我的视图加载时,UIWebView
立即将焦点放在 div
上并弹出键盘。
我正在使用启用可编辑 UIWebView
的标准机制(div
标记中的 contenteditable
属性)。
一切都很好 - 当我加载我的视图时,UIWebView
加载,当我单击时,我进入编辑模式。
但是,我想要做的是当我的视图加载时,立即进入编辑模式并让光标从 div
.
有人知道怎么做吗?我尝试使用 stringByEvaluatingJavaScriptFromString
在我的 HTML 中调用一个 JS 方法,该方法在 <div>
上执行 .focus()
但它不起作用。
我认为这与在 Safari 中禁用以编程方式启动键盘有关。默认情况下,UIWebView 不允许以编程方式启动键盘。但是,您可以在创建 UIWebView 时从 Swift 端启用此功能。只需将 keyboardDisplayRequiresUserAction
设置为 false
.
有关详细信息,请参阅 Apple's documentation
注意:我没有对此进行测试,contenteditable
可能还有其他问题,但这是开发移动网络应用程序时的常见问题。
感谢 Teemu 的提示,我终于弄清楚了如何完成这项工作。我必须执行以下操作:
首先,正如 Temmu 提到的,我必须在 viewDidLoad
.
keyboardDisplayRequiresUserAction
设置为 false
其次,假设我的可编辑内容在 <div id="content">...</div>
中,我在 div
之后注入了以下 Javascript :
<script>document.getElementById('content').focus();</script>
有了这两件事,当我的视图加载时,UIWebView
立即将焦点放在 div
上并弹出键盘。