当我结束编辑时,不会触发textfieldDidEndEditing方法,并选择另一个uicontrol而不是textfield

时间:2011-08-23 09:22:49

标签: iphone uitextfield

我在我编程的uitextfield中使用

-(BOOL)textFieldShouldEndEditing:(UITextField *)textField
{
[textField resignFirstResponder];
return YES;
}

捕捉我的文本字段已完成编辑的事件。在我将焦点从一个文本字段更改为另一个文本字段或按返回的事件中,事件被触发,但如果我在文本字段中并单击另一个uicontrol,如按钮从它,这个方法没有被解雇。这里有什么不对...我需要在用户编辑完文本字段时捕获每个事件。我也试过了textfielddidendediting,但这个事件被错过了......如何克服这个

3 个答案:

答案 0 :(得分:7)

单击 - (IBAction)方法中的按钮.write代码

[yourTextField resignFirstResponder];那些方法就会被调用。

 - (IBAction) yourBtnClicked:(id)sender
 {
   [textField resignFirstResponder];
 }

答案 1 :(得分:1)

这里发生的是当您编辑文本字段然后单击UIButton或其他任何内容时,将不会调用UITextfield的委托方法。

为此,您必须在该按钮的代码中编写该文本字段的代码。

你需要的只是,

   //inside your btn action
   - (IBAction) btnPressed : (id) sender
   {
        [self textFieldDidEndEditing:myTextField];
        //remaining code goes here....
   }

答案 2 :(得分:0)

问题很可能是DidEndEditing不会触发,因为即使点击按钮后你的文本字段仍然是第一个响应者。

您可以在单击按钮时设置第一个响应者,然后释放第一个响应者。然后,无论在单击按钮之前上次编辑了哪个文本字段,它的DidEndEditing事件都将触发。