1

我在 UIPopoverController 中嵌入了一个 UITableView,如下所示。

PopoverController 处于“正常”状态

当我选择一个单元格时,单元格中的 textField 变为 firstResponder。但不是保持表格视图滚动到顶部,而是所有内容都消失了(即使不超过 4 个单元格)。如果发生这种情况,滚动到顶部是不可能的。关闭键盘后一切正常。

显示键盘时的 PopoverController

以下代码不能解决问题:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    CRShoppingListItemCell *cell = (CRShoppingListItemCell *) [tableView   cellForRowAtIndexPath:indexPath];
    cell.itemTextField.enabled = YES;
    cell.itemTextField.delegate = self;
    [cell.itemTextField becomeFirstResponder];
    [tableView scrollToNearestSelectedRowAtScrollPosition:UITableViewScrollPositionNone animated:YES];
    [tableView deselectRowAtIndexPath:indexPath animated:YES];
}
4

1 回答 1

0

我的猜测是你没有使用 UITableViewController。在该控制器的 viewWillAppear 中,它检查 isInViewControllerThatHandlesKeyboardAvoidance (私有),其中一个控制器是弹出框控制器。因此,如果是这样,那么当表格全屏时您通常想要的键盘避免行为被关闭。

于 2017-12-09T00:44:45.793 回答