Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 结束编辑时,TextFieldDiEndediting方法未激发,并选择textfield以外的其他uicontrol_Iphone_Uitextfield - Fatal编程技术网

Iphone 结束编辑时,TextFieldDiEndediting方法未激发,并选择textfield以外的其他uicontrol

Iphone 结束编辑时,TextFieldDiEndediting方法未激发,并选择textfield以外的其他uicontrol,iphone,uitextfield,Iphone,Uitextfield,我在编程生成的uitextfield中使用 -(BOOL)textFieldShouldEndEditing:(UITextField *)textField { [textField resignFirstResponder]; return YES; } 捕获我的文本字段已编辑的事件。在我将焦点从一个文本字段更改为另一个文本字段或按return键的事件中,将触发该事件,但如果我在文本字段中并单击另一个uicontrol(如其中的按钮),此方法未激发。这里有什么问题…我需要捕获用户编辑文本字

我在编程生成的uitextfield中使用

-(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变量声明为类参数