Ios 有了UIPresentationFormSheet,为什么';当我的视图打开时,它不会移到键盘上方吗?
苹果说: UIModalPresentationFormSheet 显示视图的宽度和高度小于屏幕的宽度和高度,并且视图位于屏幕的中心如果设备处于横向且键盘可见,则视图的位置会向上调整,以使视图保持可见。所有未覆盖的区域都会变暗,以防止用户与它们交互 但当键盘可见时,我的视图不会向上移动。我基本上想在键盘上方显示一个文本视图,这样用户就可以输入文本,然后点击发送(在显示视图的导航栏按钮中) 我的演示视图是一个Ios 有了UIPresentationFormSheet,为什么';当我的视图打开时,它不会移到键盘上方吗?,ios,modalviewcontroller,Ios,Modalviewcontroller,苹果说: UIModalPresentationFormSheet 显示视图的宽度和高度小于屏幕的宽度和高度,并且视图位于屏幕的中心如果设备处于横向且键盘可见,则视图的位置会向上调整,以使视图保持可见。所有未覆盖的区域都会变暗,以防止用户与它们交互 但当键盘可见时,我的视图不会向上移动。我基本上想在键盘上方显示一个文本视图,这样用户就可以输入文本,然后点击发送(在显示视图的导航栏按钮中) 我的演示视图是一个UISplitViewController(不是它的子对象),我演示的是UINavigat
UISplitViewController
(不是它的子对象),我演示的是UINavigationController
,谁的顶视图控制器基本上是一个UITextView
。旋转可以工作,但显示的视图在两个方向上都被键盘重叠
在这种情况下,我发现了如何调整显示视图的大小,这很好,但我不想通过在演示者或显示视图中手动调整大小来进行假设。看起来它应该选择一个合适的(未记录的)尺寸,当键盘显示时,它会自动向上移动
我的演示代码如下所示:
MyViewController *vc = [[MyViewController alloc] init];
UINavigationController *nav = [[[UINavigationController alloc] initWithRootViewController:vc] autorelease];
nav.modalPresentationStyle = UIModalPresentationFormSheet;
[self.splitViewController presentModalViewController:nav animated:YES];
当我结束我的问题时,我意识到我正在调用
成为第一响应者
,在视图中的UITextView将出现
。如果您将其更改为viewdide
它将工作,这是有意义的。我还发现,如果我使用becomeFirstResponder,即使在viewdide中,我也会得到不希望的效果。例如,在横向模式下,模态视图的中心可能不正确。要避免此问题,请在dispatch_async()中调用becomeFirstResponder。