在我的UITableView中,我有一行,每行包含4个文本字段。在用户结束编辑后,UITableView数据源中的一些东西正在重新计算,所以我需要在文本字段版本之后重新加载UITableView。但是因为正在重新加载tableview,当用户在编辑第一个文本字段时触摸另一个文本字段进行编辑时,第二个文本字段不会被选中。在编辑之前,他必须再次触摸它。
有没有办法避免这种行为?不幸的是,我确实需要使用reloadData而不是reloadSections或reloadRows方法。任何帮助将不胜感激,谢谢!
答案 0 :(得分:0)
重新加载表格视图将重新签名文本字段的第一个响应者甚至文本视图。如果您需要进行多项更改,可以试试这个技巧。
[[self tableView] beginUpdates]
[[self tableView] endUpdates]
答案 1 :(得分:0)
尝试为每个字段分配gestureRecognizer
或为所有字段分配相同的字段。在必填字段中捕获touch
后,捕获tag
并将该字段设为firstResponder
。
答案 2 :(得分:0)
总结我收到的所有帮助和我自己的想法我已经用以下内容:
-Delay重新加载0.01秒,以便调用textFieldDidBeginEditing
- 然后将文本字段的标记和单元格的索引路径保存到textFieldDidBeginEditing
在tableview上调用reloadData
在使用变量保存的文本字段上调用becomeFirstResponder
当然不是最干净的解决方案,但它确实有效。