2010-08-20 70 views
0

我有一個視圖名稱:myplay.h和myplay.muikeyboard返回

我認爲包含一個文本框的名字txtplay ..

它包含一個按鈕名稱btnplay。

在按鈕事件我想檢查,如果uikeyboard打開,然後關閉它。

我知道下面的代碼

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

和按鈕單擊事件

-(IBAction)btnplayclick:(id)sender 
{ 
    [self.txtplay resignFirstResponder]; 
    .... 
    .... 
} 

我希望有一個全球性的代碼辭職。

+0

這一個應該做的工作,有什麼不對? – vodkhang 2010-08-20 14:56:36

+0

如果我有30個textfield我必須寫每個.. – FAsttrack 2010-11-13 06:40:22

回答

0

我認爲是通用的,在任何地方重用代碼的最佳方式是創建UIView的一個類別:

​​

然後調用這樣的方法:

-(IBAction)btnplayclick:(id)sender 
{ 
    UIView *firstResponder = [self.view findFirstResonder]; 
    [firstResponder resignFirstResponder]; 

} 

它這些技巧對我來說完美無缺。

0

或只寫

[self.view findAndResignFirstResponder]; 
0

上,是不是第一個響應爲UITextField調用resignFirstResponder是一種無害無操作。

這麼下去:

for (UIView *candidate in self.subview) { 
    if ([candidate isKindOfClass:[UITextView class]]) { 
     [(UITextView *)candidate resignFirstResponder]; 
    } 
} 
3

試試這個:

[self.view endEditing:YES]; 

從DOC:

endEditing:

使視圖(或嵌入文本的一個領域)辭職的第一個響應者狀態。

  • (BOOL)endEditing:(BOOL)力

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

適用於iOS 2.0及更高版本。

+0

太棒了!謝謝,它的作品! – Vins 2012-04-14 17:05:07