Entfernen Sie die Löschtaste (graues x) rechts neben der UISearchBar, wenn Sie auf die Schaltfläche Abbrechen tippen
Recht, zu beginnen, meine Frage, gibt es hier ein paar screenies von dem problem bereits gelöst, indem Sie die Spotify-app:
Spotify ' s Schritt 1: Standard UISearchBar nicht im Bearbeiten-Modus.
Schritt 1 http://i49.tinypic.com/wbtpwi.png
Spotify ist Schritt 2: UISearchBar nun im Bearbeiten-Modus. Suchbegriff eingegeben. Abbrechen-button rutscht von rechts, und die Taste "löschen" (Grau, x) wird angezeigt.
Schritt 2 http://i45.tinypic.com/161kbvp.png
Spotify ist Schritt 3: button Abbrechen gedrückt; Tastatur gleitet, und die Suchleiste ist nicht mehr im Bearbeiten-Modus. Suchbegriff bleibt und die Grau x-Taste ist jetzt ausgeblendet.
Schritt 3 http://i46.tinypic.com/20utv9v.png
Derzeit folgende code löst beim meine Abbrechen-button gedrückt wird:
- (void)searchBarCancelButtonClicked:(UISearchBar *)searchBar {
[searchBar resignFirstResponder];
[searchBar setShowsCancelButton:NO animated:YES];
}
Sind die Ergebnisse in:
Mein Schritt 3: Search bar jetzt nicht im Bearbeiten-Modus. Schaltfläche Abbrechen und Tastatur geschoben hat. Suche Begriff bleibt aber nicht so der Grau x.
Problem http://i46.tinypic.com/rlm4w5.png
So, meine Frage ist: da -resignFirstResponder
(und -endEditing:
FYI) ist nicht ausblenden die grauen x-Taste, wenn Sie eine Suche bar hat eingegebene text in das, wie stellt man es ausblenden?
Nochmals vielen Dank, Freunde.
InformationsquelleAutor der Frage David Foster | 2010-06-16
Du musst angemeldet sein, um einen Kommentar abzugeben.
Das problem ist, dass UISearchBar nicht aussetzen, es ist text-Feld, und verwaltet die Eigenschaften für das Textfeld selbst. Manchmal werden die Werte der Eigenschaften sind nicht, was Sie wollen.
Beispielsweise in meiner eigenen app, ich wollte die Tastatur Stil für meine Suchleiste zu verwenden, die transparent alert Stil.
Meine Lösung war, zu Fuß durch die Untersichten der Suche bar, bis Sie das Textfeld. Sie sollten dann in der Lage sein, die
clearButtonMode
Eigenschaft, mit so etwas wieUITextFieldViewModeWhileEditing
als parameter.Dieser sollte es so machen, dass die löschen-Schaltfläche wird nur angezeigt, während das Textfeld Bearbeiten.
Möchten Sie dazu auf
viewDidLoad
oder etwas früh, so es gesetzt ist, bevor Sie beginnen, es zu verwenden (aber nachdem die Suchleiste wird initialisiert.InformationsquelleAutor der Antwort Jasarien
Sieht aus wie iOS 7 verändert die view-Hierarchie des UISearchBar, und das Textfeld ist tiefer in die view (Die oben genannte Lösung hat bei mir nicht funktioniert). Eine Modifikation der obigen Lösung zur Durchquerung der gesamten Hierarchie funktioniert:
InformationsquelleAutor der Antwort Coops
Ich bin aufbauend auf die vorherigen Antworten, weil ich begann zu sehen, stürzt auf iOS 7.1, wenn ich die folgende änderung. Ich fügte einen weiteren Aufruf
respondsToSelector
für jede Ansicht, um sicherzustellen, dasssetClearButtonMode:
aufgerufen werden kann. Ich beobachtete Sie eine Instanz vonUISearchBar
immer übergeben, was scheint zu entsprechen, dieUITextInputTraits
- Protokoll noch nicht diesetClearButtonMode:
- Selektor, so dass ein Absturz aufgetreten ist. Eine Instanz vonUISearchBarTextField
bekommt auch übergeben, und ist das aktuelle Objekt, für das die callsetClearButtonMode:
.InformationsquelleAutor der Antwort user19480
Einen besseren Weg, dies zu tun in iOS7 ist:
[[UITextField appearanceWhenContainedIn:[UISearchBar class], nil] setClearButtonMode:UITextFieldViewModeWhileEditing];
InformationsquelleAutor der Antwort BigCheesy
Die Sie brauchen, um die textField-der Suchleiste
verwenden Sie die in - (void)searchBarTextDidBeginEditing:(UISearchBar *)Suchleiste Methode.
InformationsquelleAutor der Antwort Yogesh Kumar
Erweitern Jadariens Antwort, wenn Sie nie wollen die Grau x angezeigt wird, müssen Sie die folgenden
InformationsquelleAutor der Antwort Flexicoder
Akzeptierte Antwort funktioniert nicht auf iOS7+, hier ist die modifizierte version wie eine Rasche Erweiterung
Nutzung
InformationsquelleAutor der Antwort AamirR
Hers ist eine Kategorie, die ich schrieb, das dies tut
Kategorie
Nutzung
InformationsquelleAutor der Antwort aryaxt
Gibt es einen besseren Weg, als die Antworten hier, und Sie müssen keine privaten APIs oder durchqueren Sie die Untersichten, es zu tun.
UISearchBar hat eine eingebaute API HIERFÜR:
[UISearchBar setImage:forSearchBarIcon:state]
Die Suchleiste Symbol Taste, die Sie wollen, ist UISearchBarIconClear, und Sie möchten, dass die UIControlStateNormal Zustand. Dann geben Sie ein klares Bild für Bild, und Sie sind fertig.
So, es sollte so Aussehen:
InformationsquelleAutor der Antwort Alexander
Für das (x) Symbol in der Suchleiste. Sie können verwenden Sie die folgende delegate-Methode.
InformationsquelleAutor der Antwort
InformationsquelleAutor der Antwort Bhavesh Nayi