2010-04-01 66 views
14

我正在加载一个具有表单的HTML页面。我希望能够在用户点击GO或单击HTML页面上的SUBMIT按钮时关闭键盘。如何解除UIWebView上的键盘?

如果用户决定他不想填写表格,我还需要一种方法来解除键盘。

不知道如何做到这一点。

回答

10

您可以使用JavaScript模糊采取焦点从HTML文本字段远:

​​3210
+0

也,看看这个:http://stackoverflow.com/questions/866419/iphone-keyboard-in-uiwebview-does-not-go-away – dstnbrkr 2010-04-02 20:07:35

-11

我不那么熟悉的UIWebView,但通常你会解雇你的键盘就像这样......

[textField resignFirstResponder]; 

通过这样做,键盘将被解雇......

要使当用户点击返回按钮时,键盘会被解雇,您需要实施委托方法。

- (BOOL)textFieldShouldReturn:(UITextField *)textField 
{ 
    [textField resignFirstResponder]; 
    return YES; 
} 

Apple的文档包含UITextFieldDelegate方法的完整列表。

+0

不幸的是UIWebView没有像UITextField这样的委托方法。任何其他想法? – 2010-04-02 03:50:48

+0

也许你的问题在这里得到解答... http://stackoverflow.com/questions/389825/dismiss-iphone-keyboard – avizzini 2010-04-02 04:09:00

+4

这种方法根本不适用于UIWebView。看到我的答案上面的解决方案。 – 2010-07-13 15:14:27

32

,而无需知道选择什么元素更简洁的方法如下:

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

这对我来说非常合适!谢谢山姆 – 2011-06-16 19:25:24

+0

何时/你在哪里打这个电话? – zonabi 2015-06-25 16:00:46

28

javascript方法很聪明,但是这更直接:

[webView endEditing:YES]; 
+3

请注意,如果您使用演示样式“UIModalPresentationFormSheet”在iPad上呈现模态视图,则这不起作用。它的目的是iOS的行为 - 请参阅:https://devforums.apple.com/message/166801#166801。 – matm 2012-07-26 20:27:21