0

在每个单元格的 uitableview 中,当用户编辑文本字段并且按下屏幕上的任何其他按钮后,键盘没有退出时,我都有 uitextfield。我在文本字段代表中做了以下事情

- (void)textFieldDidBeginEditing:(UITextField *)textField
{
    textfieldInCell = textField;
}

-(BOOL)textFieldShouldReturn:(UITextField *)textField
{
    [textField resignFirstResponder];
    textfieldInCell=nil;// this is the ivar i am using for each textfield in cell.
    return YES;
}

-(void)textFieldDidEndEditing:(UITextField *)textField
{
    textfieldInCell=textField;
    // do the process...
    textfieldInCell=nil
}

一旦用户点击任何其他按钮但键盘没有退出,我也会调用 shouldReturn 委托函数。我哪里错了?

4

5 回答 5

0

您是否已将文本字段的委托与您的控制器绑定?或者您是否检查了 textFieldShouldReturn 调用?

我认为,在您的情况下,绑定缺少智能视图控制器。

谢谢

于 2012-11-27T05:46:11.123 回答
0

在要添加文本字段的表格视图中添加一行。

<YOUR_TEXTFIELD>.delegate = YES;

享受编程

于 2012-11-27T05:48:19.107 回答
0

首先检查你是否给了委托,UITextField然后当你当时调用按钮的方法时给委托,然后像下面这样辞职这个文本字段......

-(IBAction)yourButton_Clicked(id)sender{

   [yourTextField resignFirstResponder];
   ////your code write here

}
于 2012-11-27T05:50:53.037 回答
0

确认您将创建的每个文本字段的委托与视图控制器绑定,并在文本字段中添加一行代码并结束编辑:-

-(void)textFieldDidEndEditing:(UITextField *)textField
{
   // add the following line
   [textField resignFirstResponder];
   textfieldInCell=textField;
   // do the process...
    textfieldInCell=nil 

}
于 2012-11-27T05:56:34.690 回答
0

您必须尝试将标签值分配给文本字段,然后应该返回您使用该标签隐藏键盘的方法(如果您分配标签 -1 然后)

-(void)textFieldDidEndEditing:(UITextField *)textField{
    if(textField.tag==-1){
     [textField resignFirstResponder];
     }

}
于 2012-11-27T06:38:06.543 回答