我有一个带有自定义单元格的 UITableView,它只能获取预定义的值,因此我使用 UIPickerView 作为它们的 inputView。一切都很好,直到我编辑一个字段并需要显示其更新后的值。
为了让事情更清晰和更容易维护,我将委托(delegate)和数据源作为单独的类,并使用通知使它们与 tableView 交互。因此,在从 UIPickerView 中选择了一个值后,tableView 的数据源会收到通知,然后通知持有 tableView 引用的主 ViewController。从那里我打电话
[_tableView reloadData];
一切似乎都正常,除了 UIPickerView 消失了,我认为是因为单元格被重新生成并且在某处调用了 resignFirstResponder 或类似的东西。 有没有其他方法可以让 tableView 更新它的值,而不必在某个地方实现自定义方法,这会很丑陋吗?
最佳答案
这看起来像是预期的行为——选择器属于一个特定的单元格,该单元格被重新加载并且不再是第一响应者。我猜想无论如何都必须选择一个特定元素才能让选择器出现,即使其成为第一响应者。
所以要么重新加载后让它重新成为first responder,要么直接更新具体的cell。
关于ios - UITableView reloadData 自动调用resignFirstResponder,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6409370/