Mam pole tekstowe wewnątrz UIScrollView i chcę pokazać wyraźny przycisk, gdy użytkownik rozpoczyna edycję. Muszę też ukryć klawiaturę, gdy użytkownik kliknie tło UIScrollview (ale nie pole tekstowe). Wyświetlenie tego przycisku nie stanowi problemu, problem polega na tym, że po naciśnięciu przycisku usuwania klawiatura zostaje ukryta, a pole tekstowe nie zostanie wyczyszczone. Oczywiście problem polega na rozpoznawaniu gestów, ponieważ metoda radzenia sobie z tym jest uruchamiana po kliknięciu przycisku kasowania (ale nie jest uruchamiany, gdy pole tekstowe zostanie dotknięte). Oto mój kod:Klawisz wyczyść UITextfield ukrywa klawiaturę, gdy znajduje się wewnątrz 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;
}
Jakieś pomysły, jak rozwiązać ten problem? Może lepszy sposób na dodanie rozpoznawania gestów? Nie mogę myśleć o żadnym eleganckie rozwiązanie ... Dzięki dużo wcześniej ...
Nie można przetestować go do przyszłego tygodnia, ale wydaje się, że jest to rozwiązanie ... wielkie dzięki! :) –
Czy testowałeś to? Zadziałało? Jeśli tak, proszę przyjąć tę odpowiedź. – Thompsonian
Miałem niestandardową podklasę UIButton również na stronie, więc zrobiłem to jestKindOfClass: [klasa Uibutton] –