Tengo un campo de texto dentro de UIScrollView y quiero mostrar un botón de borrar cuando el usuario comienza a editar. También necesito ocultar el teclado cuando el usuario toca el fondo de UIScrollview (pero no el campo de texto). Mostrar ese botón de borrado no es un problema, el problema es que cuando se toca el botón borrar el teclado se oculta y el campo de texto no se borra. Obviamente, el problema está en el reconocedor de gestos, porque el método que trata de esto se dispara cuando se hace clic en el botón borrar (pero no se activa cuando se toca el campo de texto). Aquí está mi código:El botón claro de UITextfield oculta el teclado cuando está dentro de UIScrollView
//adding gesture recognizer so i can hide keyboard when user taps scrollview
- (void) textFieldDidBeginEditing:(UITextField *)textField
{
if (self.tapOutside == nil) self.tapOutside = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(textFieldTouchOutSide:)];
[self.scrollView addGestureRecognizer:self.tapOutside];
}
//This hides keyboard BUT IS ALSO CALLED WHEN CLEAR BUTTON IS TAPPED
- (void)textFieldTouchOutSide:(id)sender
{
[self.textfield resignFirstResponder];
}
//NEVER GETS CALLED
- (BOOL) textFieldShouldClear:(UITextField *)textField {
return YES;
}
¿Alguna idea de cómo solucionar esto? ¿Quizás una mejor forma de agregar el reconocedor de gestos? No puedo pensar en una solución elegante ... Muchas gracias de antemano ...
no puedo probarlo hasta la próxima semana, pero parece ser una solución ... ¡muchas gracias! :) –
¿Lo has probado? ¿Funcionó? Si es así, acepta esta respuesta. – Thompsonian
Tuve una subclase UIButton personalizada también en la página, así que hice isKindOfClass: [UIButton class] –