Wie löse ich die programmgesteuerte Abbruchschaltfläche in UISearchBar aus, wenn Sie die Abbruchschaltfläche antippen?
Ich habe eine UISearchBar oben in einer UITableView und nach einer Suche, wenn jemand eine Zeile auswählt, möchte ich die programmgesteuerte Abbrechen-Schaltfläche in der UISearchBar auslösen.
EDIT: Ohne Benutzerinteraktion.
Für einen View-Controller, der einen Such-Display-Controller verwendet, können Sie festlegen
self.searchDisplayController.active = NO;
// or:
[self.searchDisplayController setActive:NO animated:YES];
die Suchoberfläche zu schließen.
Sie müssen die UISearchBarDelegate
implementieren. Sobald Sie das getan haben, verwenden Sie:
- (void)searchBarCancelButtonClicked:(UISearchBar *)searchBar
Teilt dem Delegierten mit, dass die Schaltfläche "Abbrechen" betätigt wurde.
Dann benutze:
[self searchBarCancelButtonClicked:yourSearchBar];
Für den neuen UISearchController (2014 eingeführt mit iOS 8) können Sie Folgendes anrufen:
[self.searchController setActive:FALSE];
oder
self.searchController.active = FALSE;
(Kein Flag für Animationen, ich habe festgestellt, dass es immer animiert wird.)
Wie bei iOS 8 wird UISearchController
verwendet, um die Aktion zum Abbrechen der Schaltfläche programmgesteuert auszuführen.
[self.searchController setActive:NO];
Für die Swift 4.2-Version können Sie als folgenden Code schreiben:
searchController?.isActive = false