UITextfield键盘辞职

时间:2012-11-27 05:43:28

标签: iphone ios

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

- (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委托功能。我哪里错了?

5 个答案:

答案 0 :(得分:0)

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

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

感谢

答案 1 :(得分:0)

在tableview中添加一行,添加文本字段。

<YOUR_TEXTFIELD>.delegate = YES;

享受编程

答案 2 :(得分:0)

首先检查你是否给了代理人,然后在你调用按钮方法之后将代理人交给UITextField,这个文本字段就像下面那样辞职......

-(IBAction)yourButton_Clicked(id)sender{

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

}

答案 3 :(得分:0)

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

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

}

答案 4 :(得分:0)

你必须尝试将标签值分配给textfield然后在应该返回的方法中使用该标签来隐藏键盘(如果你将标签指定为-1)

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

}