告诉任何UITextField解雇

时间:2011-01-31 14:28:53

标签: iphone objective-c uitableview uitextfield first-responder

如何判断当前firstResponderresign?我有一群UITableView和一堆TextFields,我不知道哪个是活跃的。我想过将指针存储到数组中的所有单元格并迭代它,告诉每个单元格resignFirstResponder,但我确信有一种更简单的方法。也许像[CurrentFirstResponder resignFirstResponder]

我很感激一些帮助,Fabian

编辑:我不想在用户点击完成后关闭键盘。它应该以编程方式解散。由于我不知道哪个UITextField在任何时候有效,我正在搜索当前resignFirstResponder上调用FirstResponder的内容。

3 个答案:

答案 0 :(得分:3)

您可以使用UITextFieldDelegate Protocol上的textFieldDidBeginEditing:保留对正在进行主动编辑的UITextfeild的引用,或者您可以使用父视图执行此操作:

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

答案 1 :(得分: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可编辑,那么

textField.editing=NO;

将标记设置为distingush textFields

答案 2 :(得分:0)

只需使用UITextFieldDelegate(reference)即可。每当调用- (BOOL)textFieldShouldReturn:(UITextField *)textField时,执行[textField resignFirstResponder],因为始终使用当前活动的文本字段调用此方法。 如果您仍需要区分文本字段,请尝试设置标记并将其与if(textfield.tag == self.mytextfield.tag) {...}

一起使用