Nuevo SDK del iPhone: touchesBegan no se llama

He creado un muy muy básico, la aplicación de iPhone con Archivo/Nuevo Proyecto/en función de la Vista de la aplicación.
No hay archivo NIB no.

Aquí está mi appDelegate

.h

    @interface MyAppDelegate : NSObject <UIApplicationDelegate> {
    UIWindow *window;
    MyViewController *viewController;
}

.m

    - (void)applicationDidFinishLaunching:(UIApplication *)application {    

    //Override point for customization after app launch    
    [window addSubview:viewController.view];
    [window makeKeyAndVisible];
}

Y aquí está mi loadView método en mi controlador

 - (void)loadView {
 CGRect mainFrame = [[UIScreen mainScreen] applicationFrame];
 UIView *contentView = [[UIView alloc] initWithFrame:mainFrame];
 contentView.backgroundColor = [UIColor redColor];
 self.view = contentView;
 [contentView release];
}

Ahora, en el fin de atrapar al touchesBegan caso, he creado una nueva subclase de UIView:

.h

@interface TouchView : UIView {
}

.m

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
 NSLog(@"Touch detected");

}

y modificado de la segunda línea en mi loadView en este :

 TouchView *contentView = [[UIView alloc] initWithFrame:mainFrame];

¿Por qué es touchesBegan nunca se llama?

InformationsquelleAutor Coriolan | 2009-10-26

2 Kommentare

  1. 3

    Si cambia el loadView en este:

    TouchView *contentView = [[TouchView alloc] initWithFrame:mainFrame];
    

    Usted no debe tener ningún problema de la captura de los toques en TouchView. En su código, no crear un TouchView ejemplo, creó una UIView instancia.

  2. 0

    Encontrado la solución : touchesBegan se llama en el viewController, no en la opinión de…

    • Muy de cerca. Al parecer, el UIViewController obtiene el touchesBegan/touchesEnded/etc mensajes de antes el UIView. El UIViewController no pasa el mensaje junto a la UIView (llamando [super touchesBegan]) de forma predeterminada. Lo que usted necesita para moverse o avanzar a la toques* funciones de si su UIView tiene un controlador. Su confuso y nunca se ha documentado correctamente, pero esto es tradicional el cacao manera.
    • eso es absoluting mal amigo… se llama UIView clase así.. developer.apple.com/library/ios/#documentation/UIKit/Reference/…:

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea