9

UIButton tiene una propiedad de estado, que parece ser compatible con KVO por todas las cuentas y no hay documentación que indique lo contrario. Sin embargo, cuando agregué un observador a la propiedad de estado de un UIButton, nunca se invocó la devolución de llamada del observador. ¿Cómo?Observación del valor clave en el estado de UIButton

Respuesta

21

Si nos fijamos en la documentación de uicontrol, la propiedad estatal está marcado: synthesized from other flags.

supongo que es por eso que los cambios en esta propiedad no son compatibles con MVA.

Sin embargo, simplemente puede registrarse y observar los valores que necesita - highlighted, selected, enabled. Estas propiedades son compatibles con KVO y obtendrá la devolución de llamada del observador cuando cambien.

+4

Gracias. Actualmente estoy KVO-ing en otras propiedades. En general, creo que hay una falta de documentación sobre qué propiedades cumplen KVO y qué no están en Cocoa; ¿Sientes lo mismo? –

+1

Intenté observar 'selected' en' UIButton', pero no se llama a mi observador. Cambió a 'destacado', y funciona. Usando Swift 2. –

+0

Mi botón actúa como un interruptor, así que al final decidí escuchar 'highlight'. Se llama dos veces (al resaltar y desmarcar), por lo que lo ignoro si 'destacado' es' verdadero', y luego procedo a inspeccionar el estado 'seleccionado' del botón. –

Cuestiones relacionadas