当键盘出现时,带有大单元格的UITableViewController会出现异常,隐藏UITextView

时间:2014-04-10 22:58:21

标签: ios uitextview uitableview uikeyboard

我创建了一个新项目来测试它。

演示

创建一个Master-Detail项目。在Main_iPhone.storyboard

  1. 将原型单元格样式更改为“自定义”。
  2. 使表格视图的行高504在每个单元格中填充整个屏幕。
  3. UITextView填充原型单元格的下半部分。
  4. MasterViewController.m中,从cellForRowAtIndexPath:
  5. 中删除此行
    cell.textLabel.text = [object description];
    

    运行项目并添加一些单元格。然后点击文本视图以编辑内容。

    问题描述

    每次点击文本视图时,单元格会向上滚动以暂时显示文本视图(应该如此),然后向下滚动以便单元格的顶部可见,这会隐藏文本视图背后的文本视图键盘。

    视频

    此问题包含问题视频:UITableView in iOS 7 not scrolling to correct location when editing UITextView in cell

    问题

    可能导致这种情况的原因是什么?你能找到任何谈论UITableViewController如何处理键盘的Apple文档吗?

1 个答案:

答案 0 :(得分:-1)

我能够使用TPKeyboardAvoidingTableView解决此问题并将其添加到我的UITableViewController子类中:

- (void)viewWillAppear:(BOOL)animated
{
    // Removed to avoid default tableview scrolling behavior when the keyboard appears
    //[super viewWillAppear:animated]; 
}

单独使用TPKeyboardAvoidingTableView是不够的,因为UITableViewController的默认行为会覆盖它。阻止viewWillAppear运行是我找到阻止这种行为的唯一方法。但我不喜欢这个解决方案,因为我不知道还有什么可能会失去。