我有一个带有表单输入屏幕的 iPhone 应用程序。为此,我制作了一个自定义的 UITableViewCell
,它有一个 UILabel
和一个 UITextfield
。我对其进行了设置,以便“cellForRowAtIndexPath”从 Core Data 获取适当的值,UITextField 的
“textFieldDidEndEditing”方法将适当的值保存到 Core Data。效果很好……除了:
如果我编辑一个文本字段,然后将其滚动到屏幕外,然后单击另一个单元格的文本字段:
- 单元格已自动释放,因为它滚出了屏幕
- “textFieldDidEndEditing”出现 BAD ACCESS 错误
我完全理解这个问题,只是不确定解决它的最佳方法。我的第一个想法是将逻辑从“textFieldDidEndEditing”添加到“dealloc”,但这似乎很老套。有什么建议么?
最佳答案
我最终使用了 ScrollView 的委托(delegate)方法(内置于 UITableView 中)。当用户开始拖动时,我辞去第一响应者。
这非常有效,因为它看起来不错,并且当用户开始滚动时调用“textFieldDidEndEditing”,这总是在文本字段离开屏幕之前。
关于iphone - 自定义 UITableViewCell 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8058412/