UISearchBar Keyboard Return-Taste

8

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

  1. 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.

  2. 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 .

    
Andy Barnard 20.12.2011, 23:48
quelle

8 Antworten

11

Versuchen Sie Folgendes:

%Vor%

Wenn Sie den Rückgabeschlüssel schließen möchten (d. h. ihn zu nichts machen), legen Sie die Eigenschaft "returnKeyType" in der UITextField-Unteransicht auf "UIReturnKeyDone" zusammen mit "keyboardAppearence" fest.

    
Neo 21.12.2011, 00:07
quelle
21

Etwas anders in iOS 7 verglichen mit der Antwort von @sudip.

%Vor%     
Martin Stolz 20.09.2013 20:07
quelle
19

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.

    
kellanburket 09.02.2015 03:27
quelle
2

Ich musste Neos Antwort einige Zeilen hinzufügen. Hier ist mein Code, um einen "Fertig" -Button für UISearchbar hinzuzufügen:

%Vor%     
sudip 28.12.2012 22:23
quelle
0

Sie können es tun, indem Sie:

%Vor%     
Maulik 21.12.2011 07:20
quelle
0

UPDATE: Ab iOS 7 funktioniert die angenommene Antwort nicht . Die Version unterhalb der Version wird ab iOS 7 funktionieren.

%Vor%     
Hisenberg 03.07.2015 06:35
quelle
0
%Vor%     
cmsygog 04.11.2016 06:47
quelle
-1

Ich habe gerade das einfachste gefunden, um dies zu hacken, einfach ein Leerzeichen setzen, wenn ich mit der Bearbeitung des Suchfelds anfange

%Vor%     
JasonD 27.05.2013 11:04
quelle

Tags und Links