即使没有变化,也会收到KVO通知?这只发生在iOS6中,在iOS7中没有问题

时间:2013-10-21 12:26:05

标签: ios ios6 uikit key-value-observing

代码在这里:

[self.textView addObserver:self forKeyPath:@"contentSize" options:NSKeyValueObservingOptionNew context:nil];

观察方法

- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
{
    NSLog(@"change %@", change);
}

每次我在textView中输入单词时,即使contentSize没有变化,方法也会被调用。 在iOS7中没有问题。

可能导致此问题的原因是什么?这是UIKit的一个错误?

1 个答案:

答案 0 :(得分:0)

试试这个,

[self.textView addObserver:self forKeyPath:@"contentSize" options:(NSKeyValueObservingOptionOld|NSKeyValueObservingOptionNew) context:@"mycontext"];  

- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
{
    NSString *oldValue = [change objectForKey:NSKeyValueChangeOldKey];
    NSString *newValue = [change objectForKey:NSKeyValueChangeNewKey];

    NSLog(@"OldValue %@",oldValue);
    NSLog(@"NewValue %@",newValue);
}