ios - UITableView reloadData 自动调用resignFirstResponder

标签 ios uitableview resignfirstresponder

我有一个带有自定义单元格的 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/

相关文章:

ios - UISearchController 在编辑时添加偏移量

ios - 解析 PFQuery IOS 返回用户名

objective-c - iOS 堆栈跟踪之谜,ABRecordCopyValue 值得怀疑

json - 尝试使用 didSelectRowAtIndexPath 更新标签

uitableview - 我无法让我的 UITableView 快速重新加载数据

iOS 为什么调用从 uitextield 中删除第一响应者会影响键盘?

ios - 防止 UITextField 在更改 firstResponder 时取值

ios - Objective-C/THEOS - 是否可以保存 NSMallocBlock?

objective-c - 在 TabBar 控制的 iOS 应用程序中的第二个选项卡中进行交互时,将 RemoteControlEvents 接收到第一个选项卡

ios - 将数据从 TableViewController 传递到 XIB 文件而不使用 Segues-Swift 3