10 Stimmen

Wie kann ich die Suchschaltfläche der UISearchBar-Tastatur deaktivieren/aktivieren?

Ich verwende UISearchBar in meinem Code. Ich habe seinen Delegaten in der Header-Datei importiert und einige Delegaten-Methoden auch in der Implementierungsdatei implementiert.

Wenn wir auf die Schaltfläche UISearchBar wird eine Tastatur zur Texteingabe angezeigt. Die Eingabetaste der Tastatur ist " Suche Taste". Sie ist dann standardmäßig deaktiviert. Wenn wir ein Zeichen eingeben, wird sie aktiviert. (Habe ich Recht?)

Hier kommt das Problem. Ich möchte die UISearchBar die Return-Taste der Tastatur, wenn der Benutzer mindestens zwei Buchstaben eingibt.

Ist das möglich? Wenn ja, wie können wir es tun?

Danke

9voto

MishieMoo Punkte 6479

Sie können die Suchschaltfläche nicht deaktivieren. Was Sie tun können, ist die Verwendung der UISearchBarDelegate Methoden, um herauszufinden, ob Sie Maßnahmen ergreifen sollten, wenn die Suchschaltfläche angeklickt wird, etwa so:

- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar {
    if (searchBar.text.length < 2) {
        return;
    }
    else {
        // Do search stuff here
    }
}

のことです。 Apple-Dokumentation ist ebenfalls sehr nützlich und ein guter Ausgangspunkt für die Anpassung des Verhaltens der Suchleiste.

1voto

Alladinian Punkte 33464

Die kurze Antwort ist nein...

Eine längere, hackigere und exotischere ist hier: Wie kann man die Return-Taste in einem UITextField deaktivieren/aktivieren?

1voto

Hitesh Surani Punkte 11220

Sie können dies tun, indem Sie auf UISearchBar Eigentum.

let textFieldInsideSearchBar = searchBar.value(forKey: "searchField") as? UITextField
textFieldInsideSearchBar?.enablesReturnKeyAutomatically = false

Durch das Spielen mit enablesReturnKeyAutomatically Immobilien können Sie Ihre Anforderungen erfüllen.

Danke.

1voto

Volodymyr Kulyk Punkte 6231

Hier ist die Einstellung, die Sie suchen:

searchBar.enablesReturnKeyAutomatically = true

0voto

Dhiraj Umale Punkte 92

So mache ich es:

    if([searchbar.text length] == 0) {
        [searchBar performSelector: @selector(resignFirstResponder)
                           withObject: nil
                           afterDelay: 0.1];
    }

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X