С UIPresentationFormSheet, почему мой вид не перемещается над клавиатурой, когда он вверх? - PullRequest
2 голосов
/ 28 октября 2011

Apple говорит:

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

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

Мое представление представляет собой 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 Ответ

3 голосов
/ 28 октября 2011

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

...