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

Iphone 如何取消UIWebView中的文本字段编辑?,iphone,cocoa-touch,Iphone,Cocoa Touch,我正在开发一个带有嵌入式UIWebView的应用程序 用户可以在web视图的文本字段中输入位置,但也可以使用核心位置查找当前位置 如果Core Location给出了准确的答案,并且用户当前正在编辑位置,我希望取消编辑并以编程方式填充位置字段。这是基于这样一种假设,即用户在绝大多数情况下都希望使用其当前位置,如果他们正在编辑字段,他们宁愿该字段是自动填充的,而不是必须完成输入其位置 我的问题是,如何在UIWebView中取消编辑?如果它是一个普通的文本输入字段,我会强制它退出first resp

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

用户可以在web视图的文本字段中输入位置,但也可以使用核心位置查找当前位置

如果Core Location给出了准确的答案,并且用户当前正在编辑位置,我希望取消编辑并以编程方式填充位置字段。这是基于这样一种假设,即用户在绝大多数情况下都希望使用其当前位置,如果他们正在编辑字段,他们宁愿该字段是自动填充的,而不是必须完成输入其位置

我的问题是,如何在UIWebView中取消编辑?如果它是一个普通的文本输入字段,我会强制它退出first responder,键盘也会消失,但我不知道如何使用UIWebView实现这一点。将resignFirstResponder发送到web视图并不起作用


在web视图上是否可以使用Javascript和stringByEvaluatingJavaScriptFromString:执行某些操作?还有其他方法吗?

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

看起来您可能想要的是:

window.blur();

因此,诀窍是使用“blur()”,但只在选定的字段上使用,而不是在整个窗口上使用

如果“self”是UIWebView的一个子类,则以下代码段会起作用:

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

只需使用[webView endEditing:YES]

肯德尔,非常感谢你的回答,不幸的是它似乎不起作用。我尝试了“NSLog”(@“javascript结果%@)”,[mainWebView stringByEvaluatingJavaScriptFromString:@“window.blur();”);”在编辑过程中,键盘保持不动,没有打印错误。你能想出别的办法试试吗?
[webView stringByEvaluatingJavaScriptFromString:@"document.activeElement.blur();"];