如何取消UIWebView中的文本字段编辑?

时间:2009-04-27 01:57:09

标签: iphone cocoa-touch

我正在开发一个带有嵌入式UIWebView的应用程序。

用户可以在Web视图的文本字段中输入位置,但也可以使用Core Location发现当前位置。

如果核心位置提供了准确的答案,并且用户当前正在编辑该位置,我想取消编辑并以编程方式填充位置字段。这是基于这样的假设:用户在绝大多数时间都想要使用他们当前的位置,如果他们正在编辑该字段,他们宁愿自动填充它而不是必须完成输入他们的位置。

我的问题是,如何在UIWebView中取消编辑?如果它是一个普通的文本输入字段,我会强制它辞职第一响应者,键盘会消失,但我不知道如何使用UIWebView。将resignFirstResponder发送到Web视图不会这样做。

在Web视图上是否可以使用Javascript和stringByEvaluatingJavaScriptFromString:来完成某些事情?还有另一种方式吗?

4 个答案:

答案 0 :(得分:7)

只需使用[webView endEditing:YES];

答案 1 :(得分:2)

[webView stringByEvaluatingJavaScriptFromString:@"document.activeElement.blur();"];

答案 2 :(得分:1)

您最好的选择是使用Javascript方法,查看表单字段焦点值,看看是否可以使其成为焦点。

看起来你可能想要的是:

window.blur();

答案 3 :(得分:1)

所以诀窍是使用'blur()',但仅限于所选的字段,而不是整个窗口。

如果'self'是UIWebView的子类,则以下代码片段可以解决这个问题:

[self stringByEvaluatingJavaScriptFromString:@"document.getElementsByName('textField')[0].blur();"];