Мы пока пытаемся поддерживать iOS 9 ... Это единственное место, где это происходит ...
У меня есть UITextView
, который занимает весь вид, который занимает весь экран. Я зарегистрировался, чтобы получить UIKeyboardWillShowNotification
и UIKeyboardWillHideNotification
. Я получаю их просто отлично и настраиваю высоту моего UITextView так, чтобы он находился над клавиатурой:
- (void) keyboardWillShow:(NSNotification *)aNotification
{
CGRect keyboardRect = [[[aNotification userInfo] objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue];
CGRect bounds = self.view.bounds;
bounds.size.height = bounds.size.height - keyboardRect.size.height;
self.textView.frame = bounds;
}
Опять же, это прекрасно работает. Теперь я печатаю несколько строк. Какое-то время нижняя строка текста автоматически остается над клавиатурой, когда я добавляю больше строк текста. Но в конце концов, обычно в пределах нескольких строк (возможно, 4-5), следующая строка будет проходить под клавиатурой, и я могу продолжить вводить строки под клавиатурой. В конце концов строки, которые я все еще вижу над клавиатурой, начнут прокручиваться вверх, когда я коснусь нижней части экрана линиями, которые я печатаю за клавиатурой.
Я не получаю UIKeyboardWillHideNotification
во время этого процесса, но он почти ведет себя, как я, то есть размер моего UITextView
, кажется, возвращается к своему первоначальному размеру до того, как была показана клавиатура.
Все это прекрасно работает в iOS 11. То есть, когда я печатаю, текст прокручивается вверх, так что нижняя строка текста никогда не идет за клавиатурой. Это просто iOS 9. Кто-нибудь помнит известную в те времена проблему и обходной путь?