Ich habe stundenlang auf Google und Stackoverflow gesucht, probiert aber kein Glück.Wie didSelectRowAtIndexPath-Methode mit UITapGestureRecognizer aufrufen?
Ich habe eine UITableView tblDepartment
und eine UISearchBar studentSearch
darüber.
füge ich eine UITapGestureRecognizer
die Tastatur aus studentSearch
Textbox zu entlassen, wenn Benutzer außerhalb des Suchfeld tippen:
UITapGestureRecognizer *gestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(hideKeyboard)];
[self.tblDepartment addGestureRecognizer:gestureRecognizer];
- (void)hideKeyboard
{
[studentSearch resignFirstResponder];
}
Danach wird das Verfahren didSelectRowAtIndexPath:(NSIndexPath *)indexPath
nicht mehr aufgerufen wird, wenn ich Zeile in tblDepartment
wählen. Ich weiß gestureRecognizer
ist der Grund.
Also, wie kann ich die Tastatur ausblenden und immer noch zulassen, dass Benutzer Zeile auswählen?
habe ich versucht, diesen Code, aber es hat nicht funktioniert:
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch
{
if ([touch.view isDescendantOfView:tblDepartment]) {
return NO;
}
return YES;
}
Können Sie die Gestenerkenner entfernen und Ersthelfer von 'tableView: didSelectRowAtIndexPath:' stattdessen zurücktreten? – dasblinkenlight
Versuchen Sie, Ihre Gestenerkennung nach dem 'resignFirstResponder' zu entfernen. – ohr
@dasblinkenlight: Vielen Dank für Ihren Kommentar. Die 'tblDepartment' hat etwa 7 Zeilen und die Tastatur überlappt sie beim Anzeigen. Ich möchte, dass Benutzer Zeilen auswählen können, wenn sie nicht suchen möchten. Wenn sie also außerhalb des Suchfelds tippen, wird die Tastatur geschlossen und sie können die unteren Zeilen auswählen. –