У меня есть UITable, содержащий некоторые таможенные UITableCells.Эти ячейки содержат несколько UILabels и UITextField.Источником данных таблицы является свойство главного контроллера.(Этот контроллер также является делегатом и источником данных для таблицы.)
Вот упрощенный снимок экрана пользовательского интерфейса:
Теперь мне нужно обновить«на лету» содержимое всех UILabels, когда пользователь редактирует одно из полей UITextFields.Для этого я слушаю событие «Редактирование изменено» на уровне UITextField.Это вызывает следующее действие:
- (IBAction) editChangeHandler: (id) sender {
MyAppDelegate *delegate = [[UIApplication sharedApplication] delegate];
[[delegate.viewController.myDataSourceArray objectAtIndex:self.rowIndex] setANumber: [theTextField.text intValue]];
[delegate.viewController reloadRows];
}
Метод reloadRows в viewController выглядит следующим образом:
- (void) reloadRows {
NSLog(@"called reloadRows");
//perform some calculations on the data source objects here...
[theUITable reloadData];
}
Моя проблема заключается в том, что всякий раз, когда пользователь изменяет значение в поле,Метод reloadRows успешно вызывается, как и reloadData, но он также вызывает отклонение клавиатуры.
Таким образом, в итоге пользователь может коснуться только одной клавиши при редактировании TextField, прежде чем клавиатура будет закрыта итаблица перезагружена.
Кто-нибудь знает решение этой проблемы или испытал ту же проблему?