使用UIPresentationFormSheet,为什么我的视图不能在键盘上方移动?

苹果说:

UIModalPresentationFormSheet呈现的视图的宽度和高度小于屏幕的宽度和高度,并且视图在屏幕上居中。 如果设备处于横向并且键盘可见,则视图的位置将向上调整,以便视图保持可见。 所有未被覆盖的区域都会变暗,以防止用户与其进行交互。

但是,当键盘可见时,我的视图不会向上移动。 我基本上想要在键盘上方呈现一个文本视图,以便用户可以input文本,然后点击发送(在呈现的视图上的导航栏button)。

我的呈现视图是一个UISplitViewController (不是它的子项之一),而我正在介绍UINavigationController谁是顶级视图控制器基本上是一个UITextView 。 旋转工作,但是呈现的视图在两个方向上都被键盘重叠。

在这种情况下,我发现了一些 问题, 询问如何调整显示视图的大小,这很好,但我不想通过在演示者或呈现视图中手动resize来进行假设。 它似乎应该只是select一个体面的(无证)的大小,只是在键盘显示时自动移动它。

我的展示代码如下所示:

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

当我正在完成我的问题,我意识到我在viewWillAppear在我的UITextView调用becomeFirstResponder 。 如果你改变它viewDidAppear它将工作,这是有道理的。