0

以下是情况的简短摘要:

我有一个带有多个单元格的 TableViewController。在其中一个单元格中,我有一个 UITextField。此单元格属于自定义 UITableViewCell 类。这个类实现了 UITextFieldDelegate 协议和方法textFieldDidEndEditing: 在方法中textFieldDidEndEditing:我将 TextField 的值存储到 CoreData 中。

这一切都很好。

我的问题与重新加载 TableView 有关:

在用户的某些操作后,我通过调用[self.tableView reloadData] If 重新加载 UITableView 的数据,当我调用此方法时,上面提到的 TextField 是第一响应者,该textFieldDidEndEditing:方法将被调用,导致我的 CoreData 相关代码执行。

当 TableView 被重新加载时,我不希望自定义 TabelViewCell 做任何事情。有没有办法, TableViewCell 可以知道 TableView 正在重新加载?所以我可以在方法中检查这个textFieldDidEndEditing:

与此同时,我已经通过以下方式解决了它:

创建这个 TableViewCell 时,我让 ViewController 存储对它的引用。在调用之前,[self.tableView reloadData]我首先通过设置自定义属性来通知 Cell,_cell.tableWillReload = YES 我将在方法中检查此属性textFieldDidEndEditing:

我在想也许有一种不同的、更默认的方式,让 TableViewCells 知道它们周围的TableView 正在重新加载?

4

1 回答 1

0

尝试这个 :-

[yourTextFieldOfCell resignFirstResponder];

打电话之前[self.tableView reloadData];

于 2012-12-21T10:46:40.807 回答