2010-04-01 65 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