UIModalPresentationFormSheet 呈现视图的宽度和高度小于屏幕的宽度和高度,视图以屏幕为中心。 如果设备处于横向方向且键盘可见,则向上调整视图的位置以使视图保持可见。所有未覆盖的区域都将变暗以防止用户与其进行交互。
但是当键盘可见时,我的视图不会向上移动。我基本上想要在键盘上方以模态方式呈现textview,以便用户可以输入文本,然后点击发送(在显示的视图上的导航栏按钮。)
我的呈现视图是UISplitViewController
(不是其中一个孩子),我正在呈现UINavigationController
,其顶视图控制器基本上是UITextView
。旋转有效,但所呈现的视图在两个方向上都被键盘重叠。
我发现some questions asking如何在这种情况下调整呈现视图的大小,这很好,但我不想通过手动调整大小来做出假设。演示者或在呈现的视图中。看起来它应该只选择一个体面的(未记录的)大小,只需在键盘显示时自动将其移动。
我的呈现代码如下:
MyViewController *vc = [[MyViewController alloc] init];
UINavigationController *nav = [[[UINavigationController alloc] initWithRootViewController:vc] autorelease];
nav.modalPresentationStyle = UIModalPresentationFormSheet;
[self.splitViewController presentModalViewController:nav animated:YES];
答案 0 :(得分:3)
当我完成我的问题时,我意识到我在becomeFirstResponder
的UITextView上调用了viewWillAppear
。如果将其更改为viewDidAppear
,它将起作用,这是有道理的。