iOS9:KVO 不再工作
iOS 9: KVO no longer working
我在 UITextView 上有一个观察器来检测其内容大小是否发生变化:
[_textView addObserver:self forKeyPath:@"contentSize" options:NSKeyValueObservingOptionNew context:NULL];
这段代码总是可以调用以下函数,我在其中调整 UITextView 的大小:
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
但是,在 iOS9 中,此函数从未被调用。 iOS 9 中发生了什么变化,我该如何解决?
如果您搜索 UIKit 和 KVO Compliance,您会发现每个人都说您不能依赖它。参见 this question and this question。
我不知道发生了什么变化,但我认为如果您想知道它何时发生变化,您应该只继承 UITextView 并重载 setContentSize:。
我在 UITextView 上有一个观察器来检测其内容大小是否发生变化:
[_textView addObserver:self forKeyPath:@"contentSize" options:NSKeyValueObservingOptionNew context:NULL];
这段代码总是可以调用以下函数,我在其中调整 UITextView 的大小:
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
但是,在 iOS9 中,此函数从未被调用。 iOS 9 中发生了什么变化,我该如何解决?
如果您搜索 UIKit 和 KVO Compliance,您会发现每个人都说您不能依赖它。参见 this question and this question。
我不知道发生了什么变化,但我认为如果您想知道它何时发生变化,您应该只继承 UITextView 并重载 setContentSize:。