Ich verwende eine UISearchBar, um die Texteingabe mit Einträgen in einer Datenbank abzugleichen und die übereinstimmenden Ergebnisse dem Benutzer in einer UITableView während der Eingabe anzuzeigen.
Alles ist gut, aber ich kann keine Möglichkeit finden, den Rückgabetyp der Tastatur der Suchleiste zu ändern. Standardmäßig wird der Standardschlüssel return durch eine Schaltfläche Suchen ersetzt. Da ich eine Live-Suche mache, während der Benutzer tippt, brauche ich diese Schaltfläche nicht, und da sie dort und inaktiv ist, hat sie einige Usability-Probleme aufgeworfen.
Lösungsversuche
Ich kann eine Tastatur mit der setKeyboard:UIKeyboardType
-Methode einstellen, aber dies scheint die Standardeinstellung des Ersetzens der Return-Taste (auf der Standardtastatur) durch eine Suche nicht zu überschreiben Schlüssel und es erlaubt nicht den Zugriff zu ändern, diese return -Taste.
Ich habe über die Verwendung von UITextField
nachgedacht, was mir den Zugriff auf die Eigenschaft returnKeyType
über das Protokoll UITextInputTraits
ermöglicht. Mein Problem dabei ist jedoch, dass ich die UISearchBarDelegate
Methode searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText
implementiere, die ich mit der UITextField
verlieren würde.
Gibt es eine Möglichkeit, die Funktionalität der Delegate-Methoden der Suchleiste beizubehalten, während ich legitimen Zugriff auf die Return-Taste der Tastatur habe?
Tatsächlich findet sich fast der genaue Bildschirm, den ich implementiere, in Apples Clock-Anwendung
Screenshot:
Jede Hilfe bei einer sauberen Lösung wäre sehr willkommen. Beachten Sie die Schaltfläche return rechts unten anstelle der Standardschaltfläche Suchen .
Etwas anders in iOS 7 verglichen mit der Antwort von @sudip.
%Vor% Ich habe alle diese Lösungen ohne Glück versucht, bis ich gemerkt habe, dass Sie in IOS8 einfach searchBar.returnKey = .Done
oder was auch immer UIReturnKeyType
angeben können. Seufz.