Tengo un UIViewController
que es un UISearchBarDelegate
y un MKMapViewDelegate
. El evento searchBarSearchButtonClicked
funciona bien, pero cuando se prueba en iOS 4.2 el searchBarCancelButtonClicked nunca se llama al presionar el botón cancelar. En 4.3 todo funciona bien. Tengo otras vistas con código idéntico y funciona bien. He comprobado tres veces las firmas del método.El delegado de UISearchBar no responde al botón cancelar
¿Podría ser algo relacionado con MapView, o estoy haciendo algo descaradamente mal?
Mi archivo .h:
@interface MyViewController : UIViewController <UISearchBarDelegate,MKMapViewDelegate,UIAlertViewDelegate>{
MKMapView *mapMainView;
UISearchBar *sBar;
}
@property (nonatomic, retain) UISearchBar *sBar;
@end
Y creo la barra de búsqueda de este modo:
sBar = [[[UISearchBar alloc] initWithFrame:CGRectMake(0, 0, 320.0, 70.0)] autorelease];
sBar.delegate = self;
sBar.showsCancelButton = YES;
[self.view addSubview:sBar];
[sBar becomeFirstResponder];
El método:
- (void)searchBarCancelButtonClicked:(UISearchBar *)searchBar
{
[searchBar resignFirstResponder];
searchBar.hidden = YES;
}
¿Alguien tiene una idea de por qué esto puede estar sucediendo?
Una cosa que acabo de notar: si toco y mantengo presionado el botón Cancelar durante más de 3 segundos, funciona ... ¿alguna idea? – user213517
Suena como un error de marco. ¿Podrías subir un .xcproj mínimo para que yo pueda ver lo que está pasando? –