苹果公司说:
UIModalPresentationFormSheet呈现的视图的宽度和高度小于屏幕的宽度和高度,并且视图位于屏幕的中心。如果设备处于横向且键盘可见,则视图的位置向上调整,使视图保持可见。所有未覆盖的区域都变暗,以防止用户与它们交互。
但是当键盘可见时,我的视图不会向上移动。我基本上想在键盘上方模态地呈现一个textview,这样用户就可以输入文本,然后点击发送(在呈现视图的导航栏按钮中)
我的呈现视图是UISplitViewController
(不是它的子视图之一),我呈现的是UINavigationController
,它的顶视图控制器基本上是UITextView
。旋转可以工作,但是呈现的视图在两个方向上都被键盘重叠。
我发现了一些问题,询问如何在这种情况下调整所呈现的视图的大小,这很好,但我不想通过在演示者或所呈现的视图中手动调整大小来做出假设。似乎它应该选择一个合适的(未记录的)大小,只要在键盘显示时自动移动它。
我的呈现代码是这样的:
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
,它将工作,这是有意义的。