2011-01-31 41 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

相关问题