我有一个包含文本字段的单元格的 UITableView。当用户编辑每个文本字段时,我需要跟踪单元格的文本字段值(即使不再显示单元格,所以简单地跟踪文本字段也不起作用)。所以我使用 Key-Value Observing 并为我的 UITableViewController 子类中的每个文本字段设置了一个观察者:
[cell addObserver:self forKeyPath:@"textField.text" options:NSKeyValueObservingOptionNew context:nil];
observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
并在类的方法中保存对文本字段的新更改。
这在 iOS 6 中效果很好,但在 iOS 7 中,当用户更改文本字段值时不会调用 KVO。显然,通过在键盘上按“完成”调用的 setter 方法不再调用 KVO。
有解决方法吗?或者更好的方式来倾听这种变化?我需要知道文本字段属于哪个单元格,因此实现文本字段的方法editingDidEnd
对我不起作用。
提前致谢。