使用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
它将工作,这是有道理的。