В настоящее время я изменяю размер прокрутки, когда клавиатура активна. Я также использую стрелки, чтобы пользователь мог быстро перейти к следующему текстовому полю. Мой scrollRectToVisible работает неправильно в вертикальном направлении. Он движется горизонтально. У меня проблема с моей десятичной панелью.
2014-09-12 10:29:24.039 TS[1895:455658] Can't find keyplane that supports type 8 for keyboard iPhone-Portrait-DecimalPad; using 1425143906_Portrait_iPhone-Simple-Pad_Default
Я также прошел через следующий код.
- (void)keyboardDidShow:(NSNotification *)n {
// Find top of keyboard input view
CGRect keyboardRect = [[[n userInfo] objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue];
keyboardRect = [self.view convertRect:keyboardRect fromView:nil];
CGFloat keyboardTop = keyboardRect.origin.y;
// Resize scroll view
CGRect newScrollViewFrame = CGRectMake(0, 0, self.view.bounds.size.width, keyboardTop);
newScrollViewFrame.size.height = keyboardTop - self.view.bounds.origin.y;
[self.scrollView setFrame:newScrollViewFrame];
}
Я заметил, что keyboardRect - 244 для моей десятичной клавиатуры и 207 для моей клавиатуры по умолчанию. Я не уверен, как это исправить. Также эта проблема появилась только в iOS 8. У моего приложения не было никаких проблем в iOS 7. Спасибо за помощь.
UPDATE: Я обнаружил, что, когда текстовое поле изначально выбрано, scrollview перемещается соответствующим образом. Когда вы выбираете другое текстовое поле, когда клавиатура встает, возникает проблема. Похоже, что scrollview сбрасывает свой размер в исходные размеры. Почему это произойдет? Есть ли способ остановить это?