我有可編輯的自定義(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