В моем приложении на экране регистрации у меня есть tableView
, который содержит UITextField
в каждой ячейке и кнопку Submit в нижнем колонтитуле. Все работает отлично, за исключением случаев, когда я ввожу значение в последние TextField
и нажимаю кнопку отправки (без отставки клавиатуры). Моя функция не отображает значение, потому что значение вводится только при завершении редактирования текста. Я использую делегата для получения значения.iOS UITextField resignFirstResponder issue
Мой код:
В 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 равно нулю, когда я нажимаю на кнопку отправки, возможно, потому, что -(void)signUpTableCell:(SignUpTableCell *)cell didUpdateValue:(NSString *)value inTextField:(UITextField *)textField
не получает вызов, если TextField не закончит редактирование. Если я нахожусь в пустое место и схожу с клавиатуры, это работает отлично. Есть ли проблема с этой проблемой?
Да, я сделал, не работал. Он уходит с первого ответчика, но не может получить значение –
Итак, ваша клавиатура действительно уходит, и вы вызываете метод 'textFieldDidEndEditing()', но 'didUpdateValue()' не вызывается? Можете ли вы проверить, вручную ли вы вызываете 'resignFirstResponder()' любой из этих методов? –