【问题标题】:Custom UITableViewCell with UITextField editingDidEnd race condition自定义 UITableViewCell 与 UITextField editingDidEnd 竞争条件
【发布时间】:2013-02-20 01:29:12
【问题描述】:

我有 UITableViewController 和编辑/保存按钮作为 BarItem。我有一个自定义单元格,它在编辑模式下显示 UITextField。当我将焦点移到另一个单元格等时,我可以保存修改后的文本。没问题。但是,当我尝试修改字段并按下触发 setEditing:NO save 等的保存按钮时,我的问题就开始了。我认为正在发生的是一种竞争条件,在处理 editDidEnd 之前触发了 Save 操作,因此我没有保存所有数据。
有关如何处理此问题的任何建议?我是否要遍历所有可见单元格以保存所有数据?我绝对可以这样做,但是我会在单击滚动和编辑按钮时遇到同样的问题吗?有没有更好的方法来刷新消息队列?

【问题讨论】:

    标签: delegates uitableview


    【解决方案1】:

    鉴于我没有接受者,我想我只能坚持我所知道的:

    1. 在完成/保存(即 setEditing:NO)处理中遍历所有单元格并保存其数据
    2. 每次发生变化时保持更新数据,即可能在值发生变化时
    3. 尝试使用 UITextFieldDelegate 和 textFieldShouldEndEditing,但我不确定这是否可行,因为我可能会遇到与我相同的问题。

    我相信 setEditing 中的 endEditing 将解决问题,因为它应该让文本字段的第一响应者辞职。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-04-29
      • 2018-05-18
      • 1970-01-01
      • 2022-01-23
      • 2018-10-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多