Detecte toques de usuario en MKMapView en iOS 5

Tengo un MKMapView en un ViewController y me gustaría detectar los gestos de los usuarios cuando toca el map con estos methods:

 - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event; - (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event; - (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event; - (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event; 

La aplicación funciona bien con iOS 3, iOS 4, pero cuando depuró la aplicación con iPhone que se ejecuta en iOS 5, veo este post:

 Pre-iOS 5.0 touch delivery method forwarding relied upon. Forwarding -touchesCancelled:withEvent: to <MKAnnotationContainerView: 0x634790; frame = (0 0; 262144 262144); autoresizesSubviews = NO; layer = <CALayer: 0x634710>> 

y no se alcanza el código en los 4 methods anteriores.

¿Sabes cómo solucionarlo?

Gracias.

Alguna forma de UIGestureRecognizer puede ayudarlo. Aquí hay un ejemplo de un reconocedor de toma que se usa en una vista de map; avísame si esto no es lo que estás buscando.

 // in viewDidLoad... // Create map view MKMapView *mapView = [[MKMapView alloc] initWithFrame:(CGRect){ CGPointZero, 200.f, 200.f }]; [self.view addSubview:mapView]; _mapView = mapView; // Add tap recognizer, connect it to the view controller UITapGestureRecognizer *tapRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(mapViewTapped:)]; [mapView addGestureRecognizer:tapRecognizer]; // ... // Handle touch event - (void)mapViewTapped:(UITapGestureRecognizer *)recognizer { CGPoint pointTappedInMapView = [recognizer locationInView:_mapView]; CLLocationCoordinate2D geoCoordinatesTapped = [_mapView convertPoint:pointTappedInMapView toCoordinateFromView:_mapView]; switch (recognizer.state) { case UIGestureRecognizerStateBegan: /* equivalent to touchesBegan:withEvent: */ break; case UIGestureRecognizerStateChanged: /* equivalent to touchesMoved:withEvent: */ break; case UIGestureRecognizerStateEnded: /* equivalent to touchesEnded:withEvent: */ break; case UIGestureRecognizerStateCancelled: /* equivalent to touchesCancelled:withEvent: */ break; default: break; } }