当从UISplitViewController显示时,UITableViewController自动滚动停止考虑键盘

当你UITableViewController ,你通常会得到一些“免费的”行为。 例如,当表格视图中的文本字段成为第一响应者时,视图控制器自动滚动以确保字段完全可见。

但是,当表视图控制器是UISplitViewController的详细视图控制器时,此自动滚动不再考虑键盘的存在。 表格视图控制器仍然会自动滚动以将文本字段保持在屏幕边界内,但不再滚动以保持字段不被键盘覆盖。

您可以通过使用Xcode的“主 – 细节应用程序”模板创build一个新项目,并用一个表格视图控制器来replace细节视图控制器,从而显示其中包含文本字段的单元格。

我想知道为什么在这种情况下,自动滚动会停止计算键盘,如果可能的话,如何纠正这种情况,而不必自己复制自动滚动function。 顺便说一句,这与重写viewWillAppear无关(如在这里关于表视图控制器自动滚动一些其他问题)。

我知道它晚了,但这可能会帮助其他人谁有这个问题。 这发生在我身上,当我在UITableViewCell中添加textfield。 我所做的就是删除

superViewWilAppear:animation

在viewWillAppear方法行,所以方法看起来像这样

 -(void)viewWillAppear:(BOOL)animated{ //[superViewWilAppear:animated]; Your rest of code } 

但是这样做是否将自动滚动全部移除,并且在textField开始编辑时必须pipe理UITableView的滚动。 不知道这是否解决了您的问题,但它会为您节省考虑不同设备的键盘高度以及更好地pipe理自己的麻烦。 此外,我不知道这是否是正确的方式来做到这一点,但它为我工作。