我有可编辑的自定义(nib)加载可重用UITableViewCell
s其中包含UITextView
。行是自动调整大小的。我有一个问题,如果用户开始编辑UITextView
,然后开始滚动焦点(firstResponder)仍然保持,我认为这是一个问题,因为屏幕单元通常允许被删除或重用。这会导致问题,因此该行仍保留在内存中,稍后显示在错误的位置。UITableViewCell中的UITextView ResignFirstResponder滚动出屏幕
我认为这是一个很好的解决方案,当细胞在屏幕外时,请拨打resignFirstResponder
来获得UITextView
。然而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
这不是我想要的。当你触摸'UITableView'上的任何地方时,我假设这段代码隐藏了键盘。当单元格滚动到屏幕可见区域外时,我想隐藏键盘。 – Sunkas