テキストフィールドを含むセルを持つ 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 は呼び出されません。どうやら、キーボードの「完了」を押して呼び出されるセッターメソッドは、KVO を呼び出さなくなりました。
これに対する回避策はありますか? または、この変更を聞くより良い方法はありますか? テキスト フィールドが属するセルを知る必要があるため、テキスト フィールドのメソッドを実装してもうまくいきeditingDidEnd
ません。
前もって感謝します。