【问题标题】:Custom tableViewCell resignFirstResponder when scrolled offscreen滚动离开屏幕时自定义 uitableViewCell resignFirstResponder
【发布时间】:2011-06-29 13:37:13
【问题描述】:

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

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

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

提前致谢。

【问题讨论】:

  • 在此处找到解决方案:stackoverflow.com/questions/5000785/… 我需要在 .xib 和 .m 文件中设置标识符
  • 你需要证据。要收集它,请尝试调试并将崩溃日志与您的问题一起粘贴。

标签: iphone objective-c ios uitableview resignfirstresponder


【解决方案1】:

你可以试试这样的:

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];
}

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-24
    • 2021-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多