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

标签 ios uitableview uikit uisplitviewcontroller

当您继承 UITableViewController 时,您通常会“免费”获得某些行为。例如,当 TableView 中的文本字段成为第一响应者时, View Controller 会自动滚动自身以确保该字段完全可见。

但是,当 TableView Controller 是 UISplitViewController 的详细 View Controller 时,此自动滚动不再考虑键盘的存在。 TableView Controller 仍将自动滚动以将文本字段保持在屏幕范围内,但它不再滚动以防止该字段被键盘覆盖。

您可以通过使用 Xcode 的“Master-Detail Application”模板创建一个新项目,并将详细 View Controller 替换为显示带有文本字段的单元格的 TableView Controller 来自行测试。

我想了解为什么在这种情况下自动滚动停止考虑键盘,如果可能的话如何纠正它而不必自己复制自动滚动功能。顺便说一句,这与覆盖 viewWillAppear 无关(就像这里关于 TableView Controller 自动滚动的其他一些问题一样)。

最佳答案

我知道已经晚了,但这可能会对遇到此问题的其他人有所帮助。当我在 UITableViewCell 中添加文本字段时,也会发生这种情况。我所做的是删除

superViewWilAppear:animated

viewWillAppear 方法中的一行。所以该方法看起来像这样

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

但是它所做的是它一起删除了自动滚动,你必须在 textField 开始编辑时管理 UITableView 的滚动。不知道这是否解决了您的问题,但它会为您省去考虑不同设备的键盘高度的麻烦,并且更好地自行管理。我也不确定这是否是正确的方法,但它对我有用。

关于ios - 当从 UISplitViewController 显示时,UITableViewController 自动滚动停止考虑键盘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26901754/

相关文章:

iphone - 带有静态图像的 UINavigationBar

ios - 在iPhone和iPad上,我们可以不使用drawRect来绘制任何东西吗?

ipad - UIActionSheet更改箭头位置?

ios - 将 'class variable' 分配给 'lazy var' 内的变量

iOS 在后台线程上访问 UIScreen

ios - Textfield 的文本必须看起来有点正确

ios - 具有本地化 UI 的 Xcode 7 UITests

ios - dequeueReusableCellWithIdentifier :forIndexPath: VS dequeueReusableCellWithIdentifier:

ios - 在 XCode 6.1.1 中调试 EXC_BAD_INSTRUCTION 崩溃

ios - 部分索引与搜索栏重叠(快速)