Odpowiedz

21

Jeśli spojrzeć na dokumentacji UIControl właściwość stan jest oznaczony: synthesized from other flags.

Chyba dlatego zmiany tej nieruchomości nie jest zgodny z KVO.

Można jednak po prostu zarejestrować się i obserwować dla potrzebnych wartości - highlighted, selected, enabled. Te właściwości są zgodne z KVO, a otrzymasz wywołanie zwrotne obserwatora po zmianie.

+4

Dziękuję. Obecnie prowadzę KVO na innych nieruchomościach. Ogólnie uważam, że brakuje dokumentacji na temat właściwości KVO i tego, czego nie ma w Cocoa; Czy czujesz to samo? –

+1

Próbowałem obserwować 'selected' na' UIButton', ale mój obserwator nie jest wywoływany. Przełączono na "wyróżniony" i działa. Używanie Swift 2. –

+0

Mój przycisk działa jak przełącznik, więc w końcu zdecydowałem się słuchać 'wyróżnionego'. Wywoływane jest dwa razy (podświetlanie i odbarwianie), więc ignoruję je, jeśli 'wyróżniony' jest' prawdziwy', a następnie przejdę do sprawdzenia stanu 'wybranego' przycisku. –