iOS 9 : KVO no longer working

标签 ios objective-c key-value-observing ios9

我在 UITextView 上有一个观察者来检测其内容大小是否正在变化:

[_textView addObserver:self forKeyPath:@"contentSize"options:NSKeyValueObservingOptionNew context:NULL];

这段代码总是可以调用以下函数,我可以在其中调整 UITextView 的大小:

- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)对象更改:(NSDictionary *)更改上下文:(void *)上下文

但是,在 iOS 9 中,这个函数永远不会被调用。 iOS 9 发生了什么变化以及如何解决这个问题?

最佳答案

如果您搜索 UIKit 和 KVO 合规性,您会发现每个人都说您不能依赖它。请参阅this questionthis question

我不知道发生了什么变化,但我认为如果你想知道它何时发生变化,你应该继承 UITextView 并重载 setContentSize: 。

关于iOS 9 : KVO no longer working,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32511864/

相关文章:

android - 自定义维度 - 何时发送用户范围自定义维度

ios - WatchOS 复杂功能闪烁

ios - 返回已传递数据的 UIView

ios - 显示 JSON 响应中的 cell.textLabel.text

ios - 当我在 xcode 中构建项目时,出现类似 clang 错误 :input files not found 的错误

error-handling - 如何使用 AVPlayer 处理流媒体错误

使用 KVO 和延迟选择器观察 NSUserDefaults 时的 iOS exc_bad_access

ios - 模拟器打开时从私有(private)有效用户设置警告中读取

ios - 未调用 UITableview 委托(delegate)

ios - CBLLiveQuery 与 kCBLDocumentChangeNotification