Ich habe eine Suchleiste implementiert, die den Abbrechen-Button anzeigt, sobald der Benutzer den Fokus in der Suchleiste hat. Dafür habe ich searchBar.showsCancelButton = YES;
in meine searchBarTextDidBeginEditing
Methode geschrieben. In searchBarSearchButtonClicked
gebe ich die Tastatur zurück, damit der Benutzer die gesamte Tabellenansicht anzeigen kann.
Problem: Zu diesem Zeitpunkt reagiert die Schaltfläche zum Abbrechen der Suchleiste nicht. Es reagiert nur, wenn die Suchleiste erneut den Fokus erhält. Ist dies die Standardeigenschaft der Suchleiste Abbrechen-Schaltfläche oder fehlt etwas in meinem Code. Ich möchte die Schaltfläche Abbrechen verwenden, ohne den Fokus erneut in der Suchleiste anzugeben.
Dies ist das Standardverhalten des Suchleisten-Abbrechen-Buttons. Wenn Sie andere Funktionen wünschen, können Sie einfach die cancelnbutton-Eigenschaft für die Suchleiste deaktivieren und UIButton
als Abbrechen-Schaltfläche verwenden.
Ja, Sie können Ihre UISearchBar
cancel-Schaltfläche aktivieren lassen.
Standardmäßig ist es deaktiviert, aber Sie können auf die Unteransicht zugreifen und die Schaltfläche zum Abbrechen aktivieren.
Folgen Sie dieser Antwort, wenn Sie eine andere Logik wünschen Benutzerdefiniert clear Schaltfläche im UISearchBar Textfeld
Ich denke, es ist ein Standardverhalten von UISearchBar
, wenn es dann Fokus erhält und nur dann wird die Abbrechen-Schaltfläche aktiviert. Sie können das Cancel-Button-Ereignis von UISearchBar
nicht erhalten, wenn es keinen Fokus hat.
So ist mein Vorschlag, Ihre Aufgabe zu erfüllen,
UIBarButtonItem
mit der benutzerdefinierten Ansicht als UISearchBar
ein.
UIBarButtonItem
namens "Abbrechen" mit Aktion Tags und Links iphone uisearchbar