2015-09-10 3 views
2

У меня есть наблюдатель на UITextView, чтобы обнаружить, если его размер содержание меняется:IOS 9: не KVO больше не работает

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

Этот код всегда работал, чтобы вызвать следующую функцию, где я Изменение размера UITextView:

- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context

Однако в прошивке 9, эта функция никогда не вызывалось. Что изменилось в iOS 9 и как мне это исправить?

+0

FYI - Я использую аналогичный код для определения изменений размера контента для 'UITextView', и он все еще работает отлично для меня под iOS 9. Но я передаю' 0' для параметров. – rmaddy

+0

Полезно знать - спасибо! для записи, используя приведенное ниже предложение и подклассы UITextView, он снова работает и чувствует себя намного надежнее! – user3781236

ответ

2

Если вы выполните поиск UIKit и KVO Compliance, вы увидите, что все говорят, что вы не можете положиться на него. См. this question и this question.

Я не знаю, что изменилось, но я думаю, что вам нужно просто подкласс UITextView и перегрузка setContentSize: если вы хотите узнать, когда он изменится.

Смежные вопросы