Почему UITableView не будет автоматически прокручиваться при редактировании UITextField (в UITableViewCell)? (айфон)
Я создал UITableView
, который имеет тип UITableViewStyleGrouped
. Затем я создал несколько различных разделов с несколькими строками в каждом. В каждой из этих строк я создал пользовательский UITableViewCell
, который содержит UITextField
. У меня также есть один UITableViewCell
, который содержит UITextView
.
Я также реализовал UIToolbar
, который появляется поверх UIKeyboard
, что позволяет пользователю перемещаться по UITextField
, нажав предыдущий или следующий.
Проблема, которую я имею двукратное:
- мне нужно, чтобы UITableView прокручивался так, чтобы, когда следующий
UITextField
(илиUITextView
) станет первым ответчиком, он был виден (даже с отображаемой клавиатурой). - при выборе
UITextField
(илиUITextView
) (без использования кнопок предыдущий и следующий) следует настроить так, чтобы поле было видно над клавиатурой.
Я просмотрел множество различных учебников, однако ни один из них не решил мою проблему. Любая помощь вам мог бы предложить, был бы очень признателен.
ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ:
Я ... 100% наверняка что мое приложение раньше выполняло все вышеперечисленное автоматически, однако теперь я, кажется, перестал это делать, и я не понимаю, почему. Есть ли причина, по которой это может произойти? Есть ли какая-то функция или что-то, что я мог бы изменить, что разрушило бы это поведение?
3 ответа:
Проверьте TaggedLocations пример кода из apple. Он делает то же самое без каких-либо дополнительных манипуляций.
Ключ в том, что ваши viewcontrollers следуют стандарту. то есть вы Не имеете контейнерные viewcontrollers, такие как UINavigationController внутри UIViewController.
Вероятно, сейчас нет смысла в оригинальном плакате, но у тех, у кого есть такая проблема, когда она когда-то работала, а затем прекратилась...
Проверьте, что у вас нет:
- (void)viewWillAppear:(BOOL)animated
В вашем подклассе UITableViewController!!!
Использование viewWillAppear в UITableViewController нарушает поведение" Automagic TableView scrolling up when keyboard appears".
Я нашел это только путем тщательного сравнения старой версии проекта, где он работал, с моим последним источником, где он был перестал работать.
Вы должны обновить фрейм tableview самостоятельно программно... и я на 100% уверен, что если вы на 100% уверены, что ваше приложение использовалось для выполнения всего вышеперечисленного автоматически ...чем это не ваше приложение.
Проверьте документы..вот ссылка
У вас будет чтобы зарегистрироваться для уведомлений клавиатуры..а затем обновите фрейм tableview. И на следующий и предыдущий.. вы должны программно проверить, какое текстовое поле стало активным..а затем установите рамку соответствующим образом.