UITableViewCell 中具有第一响应者状态的 UITextField 是不是会阻止单元格重用?

Posted

技术标签:

【中文标题】UITableViewCell 中具有第一响应者状态的 UITextField 是不是会阻止单元格重用?【英文标题】:Does a UITextField with first responder status in a UITableViewCell prevent cell re-use?UITableViewCell 中具有第一响应者状态的 UITextField 是否会阻止单元格重用? 【发布时间】:2011-11-08 01:55:23 【问题描述】:

在单元格包含UITextField 对象的UITableView 中,将其中一个UITextField 对象作为第一响应者是否会阻止其单元格被重复使用?

例如,如果UITableView 的行数超出屏幕容量,您可以点击UITextField 以调出该单元格中字段的键盘。然后滚动表格视图以使该单元格离开屏幕。当滚动回单元格时,我可以看到所有单元格对-tableView:cellForRowAtIndexPath: 的调用,但包含当前具有第一响应者状态的UITextField 的单元格除外。

这种行为让我相信 ios 知道我的单元格包含第一响应者,因此选择不丢弃该单元格,因此在滚动回视图时不需要调用数据源来获取该单元格。

这种行为是可取的,但我很担心,因为我没有看到任何表明这种行为得到保证的文档,如果存在不正确的情况,我不愿意依赖它。

谁能告诉我一些关于表格视图单元重用和涵盖这种情况的急救人员的文档?

【问题讨论】:

您能否继承 UITableviewCell 并覆盖方法 - (void) prepareForReuse 以查看您的单元格是否即将被重用。 我不确定这是否记录在案,但有一件事是肯定的:您不必考虑它,因为它似乎是自动的。 【参考方案1】:

iOS SDK 官方文档中没有这样的参考。您担心您所观察到的这种行为并不能得到保证并且不应被依赖是正确的。

【讨论】:

以上是关于UITableViewCell 中具有第一响应者状态的 UITextField 是不是会阻止单元格重用?的主要内容,如果未能解决你的问题,请参考以下文章

UITableViewCell 中的 UITextView:第一响应者问题

我希望 UITableViewCell 中的 UItextField 仅在单元格触摸时成为第一响应者

带有 TextField 和第一响应者的自定义 UITableViewCell

如果通过附件视图添加到 UITableViewCell,UITextField 无法成为第一响应者

UITableViewCell 不会成为第一响应者(在单元格手势上显示 UIMenuController)

UITableViewCell 有 UITextField,单元格可以被删除,但是当它是第一响应者时会崩溃