2011-01-31 84 views
1

如何告訴目前firstResponderresign?我有一個UITableView與一堆TextFields,我不知道哪一個在任何時候都活躍。我想過要存儲指向數組中所有單元格的指針,並遍歷它,告訴每個單元格到resignFirstResponder,但我確信有一個更簡單的方法。也許像[CurrentFirstResponder resignFirstResponder]告訴任何UITextField解僱

我將不勝感激一些幫助,費邊

編輯:我不想取消鍵盤當用戶點擊完成。它應該被程序化地解僱。由於我不知道在任何時候哪個UITextField處於活動狀態,因此我正在搜索當前FirstResponder上的resignFirstResponder

回答

3

使用它你可以保持對它的引用多數民衆贊成在UITextFieldDelegate Protocol使用textFieldDidBeginEditing:積極編輯UITextfeild或者你可以用你的父視圖做到這一點:

UIView * myParentViewView;//view containing one or more editable UI controls 
[myParentViewView endEditing:YES]; 
+0

剛纔也發現了這個問題:)問題是我的`UITextField`s被封裝在自定義的`UITableViewCell`s中,但我添加了一個新的委託方法來發送` - (void)textFieldDidBeginEditing:(UITextField *)tf`代表。那裏我有一個實例變量... – fabian789 2011-01-31 14:47:06

1

我希望這將解決您的問題,

分配委託的UITextField,

textField.delegate=self; 

然後在下面的方法

- (void)textFieldDidBeginEditing:(UITextField *)textField 
    { 
//This for to resign on begin editing 
    [textField resignFirstResponder]; 
    } 

- (void)textFieldDidEndEditing:(UITextField *)textField 
    { 
//This for to resign on end editing 
    [textField resignFirstResponder]; 
    } 

如果你不想要的文本框可編輯,然後,

textField.editing=NO; 

將標記設置爲distingush您的文本字段

0

只需使用UITextFieldDelegate(reference)即可。每當調用- (BOOL)textFieldShouldReturn:(UITextField *)textField時,執行[textField resignFirstResponder],因爲總是使用當前活動的文本字段調用此方法。 如果您仍然需要你的文本框來區分,可以嘗試設置標籤,並用if(textfield.tag == self.mytextfield.tag) {...}

+0

我更新了我的問題,希望它變得更清楚。 – fabian789 2011-01-31 14:41:06