2010-12-17 23 views
11

有沒有辦法做一個普通resignFirstResponder隱藏鍵盤無論什麼文本框/查看/等要求呢?iPad的關閉鍵盤不知道該文本字段打開它

原因是我對我的視圖有很多文本框,並且不希望對所有文本框都要resignFirstResponder來隱藏鍵盤。只是想一般

[self resignFirstResponder]

任何想法?

在此先感謝

回答

3

要做到這一點,最簡單的辦法是有一個方法,只要您想放棄,看起來像這樣的鍵盤:

-(void)dismissKeyboard { 
    [firstField becomeFirstResponder]; 
    [firstField resignFirstResponder]; 
} 
1

在自己的應用程序,當我有更多的而不是一個文本字段,並且希望使鍵盤消失,而不管哪個字段被稱爲它,我只會寫一個方法並讓它們中的每一個都變爲resignFirstResponder

我認爲作爲一名程序員,您應該清楚知道您的視圖控制器上有多少文本字段以及如何訪問它們,否則會變得混亂,並且您的應用看起來不太好。 。:-P

19

我知道,這已經被標記爲回答,但對於那些像我一樣你可以使用下面的方法對包含文本框的視圖運行到這一點。

- (BOOL)endEditing:(BOOL)force 

該方法着眼於當前視圖,併爲當前的第一響應者的文本字段其子視圖層次。如果它找到一個,它會要求該文本字段作爲第一響應者辭職。如果force參數設置爲YES,則甚至不會詢問文本字段;它被迫辭職。 UIView Documentation

[self.view endEditing:YES]; 

它會隱藏鍵盤當我們點擊查看。

+2

這比@ Jumhyn的 – 2014-01-16 18:37:32

1

您可以檢查這些問題:

總結: 您可以撥打becomeFirstResponder在您選擇一些其他的事情。它可能是UIViewController或UIView。之前我有類似的問題,當我將視圖控制器推回給調用者時,我需要讓鍵盤消失,而不知道哪個文本字段是第一響應者。然後,在我返回的視圖控制器的viewWillAppear中,我調用了[self becomeFirstResponder],並且推送視圖的鍵盤消失了。由於本作無論文本字段被它鬆動是第一個響應者

5

您可以關閉鍵盤沒有任何參考的UITextField /的UITextView與下面的代碼幫助:

[[[UIApplication sharedApplication] keyWindow] endEditing:YES]; 

這將在全球解僱鍵盤無參考。

希望這會幫助你。

+1

更好的答案謝謝,這適用於每種情況(包括UITableViewController) – marcelosalloum 2016-01-13 11:38:56