苹果表示:使用UIPresentationFormSheet,为什么我的视图在键盘上方移动时不能移动?
UIModalPresentationFormSheet 所呈现视图的宽度和高度比屏幕的更小,并且视图居中在屏幕上。 如果设备处于横向并且键盘可见,则视图的位置会向上调整,以便视图保持可见。所有未被覆盖的区域都变暗以防止用户与其进行交互。
但是,当键盘可见时,我的视图不会向上移动。我基本上想要在键盘上方呈现一个文本视图,这样用户可以输入文本,然后点击发送(在呈现视图上的导航栏按钮中)。
我的呈现视图是UISplitViewController
(不是它的子项之一)我正在介绍UINavigationController
谁的顶视图控制器基本上是UITextView
。旋转工作,但呈现的视图在两个方向上都与键盘重叠。
我发现somequestionsasking如何调整在这种情况下,这是很好的呈现的观点,但我不希望有由主持人或所呈现的视图中手动调整作出假设。它似乎应该只是选择一个体面的(无证)大小,只是在键盘显示时自动将其移出。
我的呈现代码如下所示:
MyViewController *vc = [[MyViewController alloc] init];
UINavigationController *nav = [[[UINavigationController alloc] initWithRootViewController:vc] autorelease];
nav.modalPresentationStyle = UIModalPresentationFormSheet;
[self.splitViewController presentModalViewController:nav animated:YES];
我还发现,如果我使用becomeFirstResponder即使在viewDidAppear中,我也会收到不良效果。例如,在横向模式下,模态视图将错误居中。为了避免这个问题,请在dispatch_async()中调用becomeFirstResponder。 – Hampden123