У меня есть контроллер представления для представления с шестью UITextFields. Всякий раз, когда пользователь выбирает текстовое поле, мне нужно прокручивать вещи вверх. Таким образом, все текстовые поля устанавливают контроллер представления в качестве соответствующих делегатов. Когда метод делегата запускается, он вызывает метод прокрутки для прокрутки вверх (если появляется клавиатура) или вниз (если он исчезает). Метод прокрутки выглядит следующим образом:
- (void) scroll: (CGFloat) distanceUp {
[UIView beginAnimations:@"Scroll" context:NULL];
//move some stuff up by distanceUp, or down if distanceUp is negative.
[UIView commitAnimations];
}
Если пользователь выбирает текстовое поле, вводит значение, а затем нажимает кнопку «Готово» на клавиатуре, это работает нормально.
Проблема возникает, когда пользователь напрямую переключается с одного текстового поля на другое. В этом случае происходит то, что вид переходит вниз, а затем снова прокручивается вверх. Очевидно, я бы предпочел, чтобы он просто оставался на месте. Как мне это сделать?