iOS 7 中的键盘不插入滚动视图

Posted

技术标签:

【中文标题】iOS 7 中的键盘不插入滚动视图【英文标题】:Keyboard does not inset scroll view in iOS 7 【发布时间】:2014-01-04 14:11:07 【问题描述】:

我正在开发一个包含大量单元格的 UITableView 的项目。其中一个单元格包含一个 UITextField。当我点击 UITextField 时,会出现键盘。问题是文本字段现在被键盘隐藏了。

我正在使用故事板,并且我已将自动AdjustsScrollViewInsets 设置为“是”。所有视图都在我的应用程序中的导航栏和标签栏下方正确扩展,但是我希望它在显示键盘时也可以调整插图。还是我需要手动调整?

如果我需要手动调整,如何将视图恢复为系统自动设置的原始插图?我应该在 awakeFromNib 中复制这些插图还是在哪个阶段可以确定系统已经调整了插图?

【问题讨论】:

可能选择文本字段时,可以将小区移动到表的顶部。不过,我从未尝试将文本字段放入单元格中...... 【参考方案1】:

你想实现这样的东西:

-(BOOL)textFieldShouldBeginEditing:(UITextField*)textfield

    UITableViewCell *currentCell = (UITableViewCell *) textField.superview.superview;
    NSIndexPath *currentIndexPath = [self.tableView indexPathForCell:currentCell];

    [self.tableView scrollToRowAtIndexPath:nextIndexPath atScrollPosition:UITableViewScrollPositionTop animated:YES]; 

    return YES;

假设您将 UITextFieldUITableView 代表设置为控制器,这将导致视图将 UITableViewCell 滚动到 UITableView 的顶部。

【讨论】:

【参考方案2】:

我终于找到了问题所在,这真的很愚蠢。我不小心有一个标准的 UIViewController 处理我的 UITableView。 UITableView 是我的主视图,它不包含在标准 UIView 中。

当我用 UITableViewController 替换 UIViewController 继承时,一切都开始按预期工作。

【讨论】:

以上是关于iOS 7 中的键盘不插入滚动视图的主要内容,如果未能解决你的问题,请参考以下文章

keyboardWillShow 上的滚动视图内容插入问题

向上推键盘 Swift iOS 后,我的 Scrollview 不会一直向上滚动

iOS - 带有内容插入的粘性标题 - 标题视图不像单元格那样滚动

滚动到滚动视图/滚动视图中的特定文本字段 当键盘在屏幕上时停止滚动

当键盘出现时视图仅大于屏幕时,如何在 iOS 中滚动?

iOS - 如何关闭键盘?