modal buttons ios first-responder

buttons - popover ios



¿Qué es una definición formal de un primer respondedor en iOS? (2)

El alcance de un primer respondedor en iOS está determinado por la jerarquía de vistas. Recuerde, un respondedor es parte de una jerarquía de respondedores, y se define en la documentación de Apple:

Un respondedor es un objeto que puede responder a eventos y manejarlos. Todos los objetos de respuesta son instancias de clases que finalmente heredan de UIResponder (iOS) o NSResponder (OS X).

Hablando en términos prácticos, todos los respondedores son parte de una cadena de respondedores potenciales que conducen hasta la aplicación en sí. Esto significa que el alcance del respondedor está determinado por la distancia que debe recorrer la cadena para obtener un objeto capaz de manejar una respuesta. Si el primer respondedor es un elemento de la interfaz de usuario, como un UITextField, su alcance está vinculado al alcance de ese respondedor.

En esta imagen, la jerarquía del primer respondedor de iOS se muestra a la izquierda (OS X a la derecha):

Para responder a la segunda parte de la pregunta, sí, los objetos pueden "robar" el estado del primer respondedor si un usuario interactúa con un elemento, por ejemplo:

  1. El usuario hace clic en textField1. Ahora es el primer respondedor.
  2. El usuario hace clic en textField2. Ha tomado el estado del primer respondedor de textField1.

... y puede otorgarles el estado de primer respondedor con ciertas funciones:

[textField3 becomeFirstResponder]; //This is now the first responder [textField4 becomeFirstResponder]; //Now textField4 has ''stolen'' first responder status [textField4 resignFirstResponder]; //The text field has resigned its first responder status to the next level up

Para cualquier persona que lea esto y no haya encontrado la documentación de Apple sobre este tema, un buen punto de partida es la explicación de la jerarquía de respuestas que se encuentra aquí: https://developer.apple.com/library/ios/documentation/General/Conceptual/Devpedia-CocoaApp/Responder.html

¡Espero que esto ayude!

Entiendo que un primer objeto de respuesta es el que recibe una señal de devolución de llamada de acuerdo con la actividad de entrada, etc., y que la hará saltar por la cadena hasta que se pueda encontrar una respuesta que esté dispuesta a manejarla.

Pero más formalmente, ¿cuál es el alcance del primer respondedor? Por ejemplo, ¿es un respondedor de toda la aplicación? Parece que ser un primer respondedor es simplemente decir que este objeto en particular recibirá una notificación de interacción. ¿Puede otro respondedor robar el primer estado de respuesta?

Por favor explique o diríjame a alguna información pertinente. He leído la explicación general de Apple de lo que es un respondedor. Estoy buscando una explicación que sea un poco más elaborada.


Es una propiedad de la ventana. La ventana tiene en todo momento no más de un primer respondedor. Cualquier UIResponder puede reclamar el estado del primer respondedor al ser becomeFirstResponder , y es por eso que puede hacer que un UITextField se "enfoque" enviándole ese mensaje.