在我的每个单元格中的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委托功能。我哪里错了?
答案 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];
}
}