立即编辑可编辑的UIWebView

时间:2015-02-28 08:19:20

标签: ios objective-c swift uiwebview

我正在使用标准机制启用可编辑的UIWebViewcontenteditable标记中的div属性。

一切都很棒 - 当我加载视图时,UIWebView加载,当我点击时,我进入编辑模式。

但是,我想要做的是当我的视图加载时,立即进入编辑模式并让光标从div的开头开始。

有谁知道怎么做?我尝试使用stringByEvaluatingJavaScriptFromString在我的HTML中调用JS方法,在.focus()上执行<div>,但它不起作用。

2 个答案:

答案 0 :(得分:2)

由于Teemu的暗示,我终于想出了如何做这项工作。我必须做以下事情:

首先,正如Temmu所说,我必须在keyboardDisplayRequiresUserAction中将false设为viewDidLoad

其次,假设我的可修改内容位于<div id="content">...</div>,我在div之后注入了以下Javascript

<script>document.getElementById('content').focus();</script>

有了这两件事,当我加载视图时,UIWebView会立即将焦点放在div并弹出键盘。

答案 1 :(得分:0)

我认为在Safari中禁用以编程方式启动键盘是相关的。默认情况下,UIWebView不允许以编程方式启动键盘。但是,您可以在创建UIWebView时从Swift端启用此功能。只需将keyboardDisplayRequiresUserAction设置为false

有关详细信息,请参阅Apple's documentation

注意:我没有对此进行测试,contenteditable也可能存在其他问题,但这是开发移动网络应用时常见的问题。