С UIPresentationFormSheet, почему мой взгляд не перемещается над клавиатурой, когда она поднята?


Apple говорит:

UIModalPresentationFormSheet Ширина и высота представленного вида меньше, чем у экрана, и вид центрирован на экране. Если устройство находится в альбомной ориентации и клавиатура видна, положение вида регулируется вверх, чтобы вид оставался видимым. все открытые области затемнены, чтобы предотвратить взаимодействие пользователя с ними.

Но мой взгляд не перемещается вверх, когда клавиатура видимый. Я в основном хочу представить textview модально над клавиатурой, чтобы пользователь мог ввести текст, а затем нажать кнопку send (в панели навигации на представленном представлении.)

Мое представление вида-это UISplitViewController (не один из его потомков), и я представляю UINavigationController, чей контроллер верхнего вида в основном является UITextView. Вращение работает, но представленный вид перекрывается клавиатурой в обоих направлениях.

Я нашел несколько вопросы спрашиваю , Как изменить размер представленный вид в этом случае, что приятно, но я не хочу делать предположения, изменяя размер вручную в презентаторе или в представленном виде. Похоже, что он должен просто выбрать приличный (недокументированный) размер, просто переместите его автоматически, когда клавиатура показывает.

Мой код представления выглядит следующим образом:

MyViewController *vc = [[MyViewController alloc] init];
UINavigationController *nav = [[[UINavigationController alloc] initWithRootViewController:vc] autorelease];
nav.modalPresentationStyle = UIModalPresentationFormSheet;
[self.splitViewController presentModalViewController:nav animated:YES];
1 2

1 ответ:

Когда я заканчивал свой вопрос, я понял, что вызываю becomeFirstResponder на моем UITextView в viewWillAppear. Если вы измените его на viewDidAppear, он будет работать, что имеет смысл.