Я пишу приложение с похожей проблемой.Способ обработки отслеживания первого респондента или активного UITextField заключается в использовании обратного вызова.Я вызываю метод, используя UIControlEvent UIControlEventEditingDidBegin .
Где я устанавливаю UITextField:
[self.nameUnitNumberField addTarget:self.textFieldDelegate action:@selector(handleEditingDidBegin:) forControlEvents:UIControlEventEditingDidBegin];
Затем в классе делегата я устанавливаю текущее текстовое поле:
- (void)handleEditingDidBegin:(id)sender
{
self.currentNameField = (UITextField *)sender;
}
Кажется, это работает хорошо.Это также позволяет избежать использования тегов.Я слышал, что есть потенциальные проблемы с ним, и лучше всего избегать его, когда он не нужен.
Когда у вас есть активный UITextField, вы можете использовать либо contentInset, и scrollToRowAtIndex: как описано здесь: Получите UITableView для прокрутки до выбранного UITextField и избегайте того, чтобы его скрывали клавиатура
или просто измените размер табличного представления, пока клавиатура находится на экране.Это был бы самый простой способ сделать это.