UIButton ma właściwość stanu, która wydaje się być zgodna z KVO dla wszystkich kont i nie ma dokumentacji wskazującej inaczej. Jednak po dodaniu obserwatora do właściwości stanu UIButton wywołanie zwrotne obserwatora nie zostało nigdy wywołane. Dlaczego?Obserwacja wartości klucz-wartość w stanie UIButton
9
A
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.
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? –
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. –
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. –