在屏幕外滚动时自定义tableViewCell resignFirstResponder

时间:2011-06-29 13:37:14

标签: iphone objective-c ios uitableview resignfirstresponder

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

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

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

提前致谢。

1 个答案:

答案 0 :(得分: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];
}

通过这种方式,您将知道您的单元格(具有您的特殊标识符的单元格)何时将被重复使用...这意味着它不在屏幕上。你可以让它重新签署第一响应者状态,然后再改造另一个像这样的人。