iOS UITextField resignFirstResponder问题

时间:2017-02-15 12:01:46

标签: ios uitextfield resignfirstresponder

在我的应用中,在注册屏幕上,我tableView在每个单元格中包含UITextField,在页脚中包含“提交”按钮。除非我在最后TextField输入值并按下提交按钮(不退出键盘),否则一切正常。我的函数不显示值,因为仅在文本编辑结束时输入值。我正在使用Delegate来获取值。

我的代码是:
在customcell.m中:

- (void)textFieldDidEndEditing:(UITextField *)textField {
    if ([textField.text length] >0) {
    [self.cellImageview setImage:editImage];
    }
    else{
    [self.cellImageview setImage:defaultImage];
    }
    [_delegate signUpTableCell:self didUpdateValue:textField.text inTextField:textField];
}

在我的viewController中:

-(void)signUpTableCell:(SignUpTableCell *)cell didUpdateValue:(NSString *)value inTextField:(UITextField *)textField    {
    NSLog(@"cell:%@    value: %@  textfield value:%@ ", cell, value, textField.text);
    [registerDictionary setValue:value forKey:textField.placeholder];
    NSLog(@"registerDictionary:%@", registerDictionary);
}

问题:

当我点击提交按钮时,最后textField值为nil,可能是因为 -(void)signUpTableCell:(SignUpTableCell *)cell didUpdateValue:(NSString *)value inTextField:(UITextField *)textField 除非textField结束编辑,否则不会接到电话。如果我点击空位并辞去键盘,它就可以了。有没有解决这个问题?

3 个答案:

答案 0 :(得分:1)

点击按钮时,您是否尝试手动呼叫resignFirstResponder()

答案 1 :(得分:1)

在提交按钮中添加以下代码:

[self.view endEditing:yes];

或使用

[self.yourTableview.scrollView endEditing:yes];

答案 2 :(得分:0)

通过对我的代码进行少量更改来修复它。从[self.view endEditing:yes];获取值后,我使用了registerDictionary。愚蠢的我。