Я расширяю UIButton
с помощью универсальной функциональности для изменения определенных атрибутов внешнего вида на основе отображаемого заголовка.
Чтобы сделать это, мне нужно обнаружить и ответить на изменения в свойстве "состояние". Поэтому я уверен, что внешний вид настроен правильно, если пользователь установил разные заголовки для разных состояний. Я предположил, что мне нужно будет использовать какой-то KVO, как показано ниже:
[self addObserver:self
forKeyPath:@"state"
options:NSKeyValueObservingOptionNew
context:nil];
Но это не похоже на метод observValueForKeyPath:... для @ "state" или @ "currentTitle". Я предполагаю, что это потому, что UIButton не реализует шаблон KVO для этих свойств.
Я не хочу просто слушать клики. Эти события вызывают изменение состояния, но не являются единственными потенциальными причинами.
Кто-нибудь знает способ прослушивания и реагирования на изменения состояния UIButton?
Спасибо
UPDATE
Просто примечание, так как я узнал несколько вещей за последние пару лет;).
С тех пор я разговаривал с некоторыми людьми Apple, которые знают, и причина, по которой KVO не работает на государственной собственности, связана с тем, что NONE UIKit гарантированно соответствует требованиям KVO. Мысль, которую стоит повторить здесь - если вы пытаетесь прослушивать какое-либо свойство класса UIKit framework, имейте в виду, что он может работать, но официально не поддерживается и может быть поврежден в разных версиях iOS.