【发布时间】:2016-01-18 13:24:01
【问题描述】:
我有可编辑的自定义(笔尖)加载可重用 UITableViewCells,其中包含 UITextView。行是自定大小的。我有一个问题,如果用户开始编辑 UITextView 然后开始滚动焦点(firstResponder)仍然保留,我认为这是一个问题,因为通常允许删除或重用屏幕单元格。这会导致问题,因此该行仍保留在内存中,并且稍后会显示在错误的位置。
我认为一个好的解决方案是在单元格不在屏幕时为UITextView 调用resignFirstResponder。然而,didEndDisplayingCell 似乎并没有在这种情况下被调用。我也试过prepareForReuse 也没有被调用。
有什么想法吗?
public func tableView(tableView: UITableView, didEndDisplayingCell cell: UITableViewCell, forRowAtIndexPath indexPath: NSIndexPath)
{
if (tableView.indexPathsForVisibleRows?.indexOf(indexPath) == nil) {
if let noteCell = cell as? AgendaNotesTableViewCell {
noteCell.noteTextView.resignFirstResponder()
}
}
}
这似乎适用于所有单元格,除了当前为 firstResponder 的单元格。我猜它保存在内存中,因此从未用于调用didEndDisplayingCell
【问题讨论】:
标签: ios swift uitableview uitextview