Iphone 结束编辑时,TextFieldDiEndediting方法未激发,并选择textfield以外的其他uicontrol
我在编程生成的uitextfield中使用Iphone 结束编辑时,TextFieldDiEndediting方法未激发,并选择textfield以外的其他uicontrol,iphone,uitextfield,Iphone,Uitextfield,我在编程生成的uitextfield中使用 -(BOOL)textFieldShouldEndEditing:(UITextField *)textField { [textField resignFirstResponder]; return YES; } 捕获我的文本字段已编辑的事件。在我将焦点从一个文本字段更改为另一个文本字段或按return键的事件中,将触发该事件,但如果我在文本字段中并单击另一个uicontrol(如其中的按钮),此方法未激发。这里有什么问题…我需要捕获用户编辑文本字
-(BOOL)textFieldShouldEndEditing:(UITextField *)textField
{
[textField resignFirstResponder];
return YES;
}
捕获我的文本字段已编辑的事件。在我将焦点从一个文本字段更改为另一个文本字段或按return键的事件中,将触发该事件,但如果我在文本字段中并单击另一个uicontrol(如其中的按钮),此方法未激发。这里有什么问题…我需要捕获用户编辑文本字段后的每个事件。我也尝试了
textfielddidediting
,但错过了此事件。单击按钮时如何克服此问题。使用-(iAction)方法编写代码
[yourTextField辞职FirstResponder];然后这些方法将被调用
- (IBAction) yourBtnClicked:(id)sender
{
[textField resignFirstResponder];
}
这里发生的情况是,当您编辑一个textfield,然后单击UIButton或其他任何东西时,UITextfield的委托方法将不会被调用 为此,您必须在该按钮的代码中为该文本字段编写代码 你只需要
//inside your btn action
- (IBAction) btnPressed : (id) sender
{
[self textFieldDidEndEditing:myTextField];
//remaining code goes here....
}
问题很可能是DidEndEditing不会触发,因为即使在单击按钮之后,文本字段仍然是第一个响应者
您可以在单击按钮时设置第一响应者,然后释放第一响应者。然后,无论单击按钮前最后编辑了哪个文本字段,都会触发DIDENDEDIT事件。Ok,但是如果使用自定义的
UITableViewCell
,如何捕获哪个是textField
?将UITextField变量声明为类参数