In der UISearchBar gibt es ein X-Element, mit dem Sie alle Inhalte gleichzeitig löschen können. Gibt es eine Möglichkeit, benachrichtigt zu werden, wenn dies passiert?
UISearchBarDelegate::searchBarCancelButtonClicked
wird nur ausgelöst, wenn die Schaltfläche "Abbrechen" angetippt wird.
UISearchBar
hat keine Delegate-Methode für dieses Ereignis. Sie können fast erreichen, was Sie wollen, indem Sie die Methode textDidChange:
des Callback-Delegaten implementieren und nach einer leeren Zeichenfolge suchen.
Ich empfehle es nicht, aber es gibt einen anderen möglichen Weg. Das UISearchBar
besteht aus einem UITextField, das eine Delegate-Methode hat, die aufgerufen wird, wenn der Benutzer auf die Schaltfläche zum Löschen klickt ( textFieldShouldClear:
). Sie können UITextField
ermitteln, indem Sie die untergeordneten Ansichten von UISearchBar
durchlaufen:
(dies ist im Kontext einer abgeleiteten Klasse UISearchBar
)
Von hier aus können Sie den UITextField
-Delegaten erneut der eigenen Implementierung zuweisen und dafür sorgen, dass Delegierungsaufrufe an den alten Delegaten weitergeleitet werden. Auf diese Weise konnten Sie textFieldShouldClear:
abfangen. Oder wenn es sich herausstellt, dass UISearchBar
der Delegat für das UITextField
ist, das es enthält, könnten Sie den Aufruf an textFieldShouldClear wechseln: ... Nicht ideal, klar, aber technisch machbar.
Hier ist eine Antwort von einer vorherigen Frage, das sollte genau das tun, was Sie wollen. UISearchbar clearButton zwingt die Tastatur zum Anzeigen
Hier ist die "Method Swizzling" Lösung.
UISearchBar
. Diese Kategorie erstellt eine neue Methode und eine Swizzle-Methode zwischen -(BOOL)textFieldShouldClear:(UITextField *)textField;
und -(BOOL)jbm_textFieldShouldClear:(UITextField *)textField
in Runtime. UISearchBarDelegate
an, um eine neue Methode hinzuzufügen - (void)searchBarClearButtonClicked:(id)sender;
UISearchBar + JMBTextFieldControl.h
%Vor%UISearchBar + JMBTextFieldControl.m
%Vor%Referenz
Dave DeLong - So fügen Sie eine Methode zu einem vorhandenen Protokoll hinzu Kakao?
Nikolai Wlassow - CCBottomRefreshControl
Tags und Links iphone uisearchbar uisearchbardelegate