我正在开发一个带有嵌入式UIWebView的应用程序。
用户可以在Web视图的文本字段中输入位置,但也可以使用Core Location发现当前位置。
如果核心位置提供了准确的答案,并且用户当前正在编辑该位置,我想取消编辑并以编程方式填充位置字段。这是基于这样的假设:用户在绝大多数时间都想要使用他们当前的位置,如果他们正在编辑该字段,他们宁愿自动填充它而不是必须完成输入他们的位置。
我的问题是,如何在UIWebView中取消编辑?如果它是一个普通的文本输入字段,我会强制它辞职第一响应者,键盘会消失,但我不知道如何使用UIWebView。将resignFirstResponder发送到Web视图不会这样做。
在Web视图上是否可以使用Javascript和stringByEvaluatingJavaScriptFromString:来完成某些事情?还有另一种方式吗?
答案 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();"];