webapp name icon for capable apple app ios uiresponder

ios - name - ¿Por qué AppDelegate hereda de UIResponder?



viewport iphone (6)

Noté que al crear un nuevo proyecto con la plantilla Master-Detail de iPhone en Xcode 4.2 beta 4, lo hace:

// AppDelegate.h @interface AppDelegate : UIResponder <UIApplicationDelegate>

¿Por qué AppDelegate hereda de UIResponder lugar de NSObject ?


ACTUALIZACIÓN: Mi respuesta a continuación podría estar equivocada. Acababa de ir por la imagen en la documentación de iOS. Pero, debe estar desactualizado.

A menos que haya algo nuevo en iOS 5 y aún no esté documentado, creo que este es un error tipográfico con esta plantilla de Xcode 4.2 beta 4. En una aplicación de iOS, el delegado de la aplicación debe subclasificar NSObject , no UIResponder , por ejemplo:

@interface AppDelegate : NSObject <UIApplicationDelegate>

Para las aplicaciones iOS, en UIKit (para Cocoa Touch, por ejemplo, iPhone y iPad), UIApplication es el último respondedor en la cadena de respondedores .

Para las aplicaciones de Mac OS X, en el Kit de aplicaciones (para Cocoa, por ejemplo, Mac), el delegado de la aplicación es el último respondedor en la cadena de respondedores .


AppDelegate hereda de UIResponder que maneja los eventos de iOS. La clase UIResponder define una interfaz para los objetos que responden y manejan eventos.


Compruebe la documentación de UIResponder . Como AppDelegate puede responder a eventos táctiles, implementa la interfaz UIResponder .


De la conversión a Storyboards Notas de la versión :

Nota: En las plantillas de Xcode actuales, la clase de delegado de aplicación se hereda de UIResponder. Esto es para que la instancia delegada pueda participar en la cadena de respondedores y así manejar las acciones a nivel de la aplicación. Si no ha utilizado este patrón en una aplicación existente, no es necesario adoptarlo para los guiones gráficos.


Supongo que es así que tiene acceso al administrador de deshacer global.


UIResponder es la clase base para el marco UIKit. UIResponder puede hacer frente a los eventos.

Su clase AppDelegate es la clase delegada para la aplicación UIApplication que crea UIApplicationMain . AppDelegate ajusta al protocolo UIApplicationDelegate .

La clase UIResponder tiene los métodos para obtener el foco de la ventana en la que se rellenarán todas las vistas, por lo que debe tener una clase que herede de UIResponder para que la ventana sea clave.