2011-01-10 14 views
16

He leído acerca de las cadenas de respuesta, y, básicamente, he leído acerca de cómo los eventos de la interfaz de usuario pasan en la cadena de respuesta, cómo manejarlos y cómo transmitirlos. También utilicé -becomeFirstResponder y -resignFirstResponder, pero los usaba solo para tareas básicas, como mostrar el teclado en iOS y manejar eventos shake.¿Cómo se puede usar "First Responder" en un archivo xib?

Lo que me gustaría saber es cómo puedo usar el objeto proxy "First Responder" en MainWindow.xib que genera Xcode. Veo algunas acciones recibidas y también veo que puedo crear acciones en la pestaña del inspector de identidad.

Así que mi pregunta es: ¿cómo puedo utilizar estas acciones, y cuando debería usar este objeto proxy en IB?!

Interface Builder Screenshot

Gracias de antemano.

+0

En realidad, ¿qué es ese objeto proxy en primer lugar? ¿Un botón? ¿Qué? –

Respuesta

3

Utilizaría el Primer Respondedor como el objetivo de una acción siempre que desee que la acción se envíe al primer respondedor, independientemente de qué objeto particular que esté en el momento en que se envía la acción.

En el escritorio Cocoa, un mensaje dirigido para el Primer Respondedor es de hecho una acción dirigida nil - no se entiende implícitamente que un objetivo sea el primer posible respondedor, el Primer Respondedor.

A menudo, las acciones textuales se dirigen al Primer Respondedor. Desea que las pulsaciones de tecla se envíen a cualquier campo de texto que tenga foco, pero el campo de texto que tiene foco cambia durante la vida de la vista y de la aplicación. Puede redirigir manualmente la acción cada vez que se enfoca un campo de texto, pero gracias a NSResponder, no tiene por qué preocuparse; eso es lo que se solucionó.

+1

Gracias por la respuesta Jeremy. Parece que en el iPhone no hay un gran uso para esta función (o al menos no veo uso hasta ahora) ... – Moszi

+0

¿Qué quiere decir con objeto que "resulta ser"? Los objetos pasan a ser en el momento en que se envía la acción. Hay muchos objetos cuando se envía una acción. ¿Cúal? –

+0

@JimThio El primer respondedor en el momento en que se envía la acción. Puede haber muchos objetos, pero solo puede haber un primer respondedor en una ventana en cualquier momento dado. –

7

Asignar una acción al primer objeto de respuesta es lo mismo que agregar una acción a un control con un objetivo nulo programaticamente. Cuando se desencadena la acción, la aplicación pasará por la cadena de respuesta y enviará la acción al primer respondedor que la acepte. En mac, a menudo se usa para enviar automáticamente comandos de menú a la ventana o documento actual. Debe usarlo si tiene varios objetos a los que desea enviar mensajes con el mismo botón.

+0

gracias por la respuesta! – Moszi

+0

¿Qué es un control con objetivo nulo? Pensé que cada control tiene muchos objetivos dependiendo de los eventos. –

+0

@JimThio Has analizado ese error. Fue "agregar una acción orientada a cero a algún control", no "agregar alguna acción a un control dirigido a cero"."El objetivo se establece por acción, no por control. –

Cuestiones relacionadas