0

我有一个包含多个自定义 tableViewCells 的表格,每个 tableViewCells 都包含一个 textField。我发现如果我在一个文本字段中输入文本,并且(不按键盘上的完成按钮)将文本字段滚动到屏幕外以将文本输入另一个单元格,则应用程序在视图更改时崩溃。这在横向模式下最常发生,因为当前 tableViewCell 需要滚动到屏幕外才能在视图更改时生成错误。

我认为正在发生的是,当单元格离开屏幕时,单元格和键盘之间的连接断开,并且当视图发生更改时,为不可见(不存在)的文本字段移除键盘会导致崩溃。

我确信这是一个简单的修复,但我还没有找到它。

提前致谢。

4

1 回答 1

0

你可以尝试这样的事情:

CustomUITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Gioni"];

// If no cell is available, create a new one using the given identifier.
if (cell == nil) {
    cell = [[[CustomUITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"Gioni"] autorelease];
}
else
{
     [cell resignFirstResponderForObjectInCell];
}

这样,您将知道您的单元格(具有您的特殊标识符的单元格)何时将被重复使用......所以这意味着它不在屏幕上。您可以在重新制作另一个喜欢它之前让它辞去第一响应者的身份。

于 2011-06-29T14:12:08.717 回答