Wie kann ich erzwingen, dass die UISearchBar automatisch eine neue Suche startet (z. B. durch Drücken der Suchtaste)? Gibt es einen einfachen Weg, dies zu erreichen?Wie kann ich programmgesteuert eine Suche in der UISearchBar erzwingen?
Antwort
Ja, Sie müssen nur einen impliziten Anruf an die searchBarSearchButtonClicked:
über Ihre UISearchbarDelegate
senden. Weitere Informationen zu diesem Delegaten finden Sie unter official doc.
Danke für die Antwort, wir haben das Problem, dass die searchBar in einer Ansicht eingebettet ist, auf die wir keinen Zugriff haben und daher funktioniert dieser Ansatz nicht. Hast du einen anderen Hinweis? – nja
Aber irgendwo in Ihrem Code sollten Sie eine Delegiertenklasse haben, um die Suche zu bewältigen - nicht wahr? – tiguero
Wir haben keinen Zugriff auf diesen Teil des Codes, da er in einer Bibliothek implementiert ist, die wir verwenden, wenn wir keinen Zugriff auf den Quellcode haben. Wir versuchen, den Delegierten zu finden, der dort verwendet wird, aber bisher sind wir nicht erfolgreich. – nja
haben gerade das Sucheingabefeld der Ersthelfer werden:
[self.searchInputField becomeFirstResponder];
Ich fand, dass ich die UISearchViewController auf aktiv zu setzen benötigt, bevor der Wert des Suchfeldes ändert programmatisch UISearchViewController automatisch durchführen um die Suche zu machen:
// Need to set the searchDisplayController to active to
// make the changes in search text trigger a search.
self.searchDisplayController.active = YES;
self.searchDisplayController.searchBar.text = @"New search string";
Dies funktioniert wunderbar, und behoben eine Vielzahl von anderen Problemen, die ich hatte, wie bestimmte Delegate Methoden nicht ausgelöst werden. Vielen Dank. – inwit
Es lohnt sich zu beachten, dass die Reihenfolge zählt :) –
scheint dumm, aber funktioniert, so ist es nicht dumm;)
NSString * forceReload = self.searchDisplayController.searchBar.text;
self.searchDisplayController.searchBar.text = forceReload;
Sie Ihre SearchBar,
zwingen kannObjective C:
[self searchBar:yourSearchBarName textDidChange: yourSearchingString];
Swift 3.0:
self.searchBar(self.yourSearchBarName, textDidChange: yourSearchingString)
Dies wird Ihre SearchBar auslösen.
mögliche Duplikate von [Textcursor automatisch in UISearchBar anzeigen] (http://stackoverflow.com/questions/7441839/automatic-show-text-cursor-in-uisearchbar) – Pascal
Kein Duplikat, da wir das nicht anzeigen möchten Tastatur, möchten wir den Suchvorgang starten, wie es getan wird, wenn Sie auf die Suchschaltfläche klicken. Das Problem ist, dass die Logik in einer Bibliothek ist, auf die wir keinen Zugriff haben (kein Quellcode). – nja
Oh, ich sehe, das macht Sinn. Sie sollten diese Information dann in die Frage stellen. ;) – Pascal