在我的应用中,在注册屏幕上,我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结束编辑,否则不会接到电话。如果我点击空位并辞去键盘,它就可以了。有没有解决这个问题?
答案 0 :(得分:1)
点击按钮时,您是否尝试手动呼叫resignFirstResponder()
?
答案 1 :(得分:1)
在提交按钮中添加以下代码:
[self.view endEditing:yes];
或使用
[self.yourTableview.scrollView endEditing:yes];
答案 2 :(得分:0)
通过对我的代码进行少量更改来修复它。从[self.view endEditing:yes];
获取值后,我使用了registerDictionary
。愚蠢的我。