2014-05-13 17 views
5

Ich fange an, mit text fields arbeiten, und ich möchte eine Funktionalität mit einer benutzerdefinierten Autocomplete implementieren.Implementieren Sie ein Autocomplete-Textfeld Ziel C

In vielen Blogs und beantworten, implementieren Sie es mit UITables, um die Autovervollständigung anzuzeigen, aber ich brauche das nicht, ich muss eine Autovervollständigung wie eine iPhone-Funktion erstellen, wo eine Pop-out mit dem Filter aber nur mit meine Reihe von Wörtern.

Zum Beispiel.

my_array = @{"apple","banana","pear","orange","berry"} 

Wenn ich brauche „app“ das Textfeld nur geben Sie mir „Apfel“ zeigen, aber den Text im text field nicht abgeschlossen haben, sollten Sie die Pop-up mit dem die automatische Vervollständigung zeigen.

So etwas, aber nur mit meinem Array.

enter image description here

+1

Check out https://github.com/hoteltonight/HTAutocompleteTextField – Milo

+0

Dank für Ihre Antwort, aber es Bibliothek das Wort im Textfeld vervollständigen, und ich brauche, dass die Funktionalität ein Wort vorschlagen und der Benutzer entscheidet, ob Sie ihn verwenden oder nicht – user2720097

+0

Das Beispiel, das Sie zeigten, ist die Standardautomatik, die mit iOS kommt. Ich glaube nicht, dass es anpassbar ist, ohne Apple Richtlinien zu verletzen. – Milo

Antwort

5

Sie dieses Verhalten aufbauen können sich die UITextFieldDelegate Methoden (implementieren, um die Delegierten in Ihrem UIView

@interface someViewController : UIViewController <UITextFieldDelegate> 

mit diesem Sie erhalten Zugang In zu tun, was der Benutzer in

getippt
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string 

Wo können Sie es mit den Elementen in Ihrem Array vergleichen und d isplay eine andere UIView oder eine benutzerdefinierte Schaltfläche, die bei Auswahl das Textfeld ausfüllt.

nicht vergessen zu sagen textfield, die es der Delegierten sollen, wahrscheinlich in Ihrer viewDidLoad Methode sein, können aber auch in der xib Ansicht

myTextField.delegate = self; 

getan werden, ich weiß, dies scheint mühsam, aber es wird extrem sein erfreulich. Hier ist die apple doc für die UITextViewDelegate

+0

Danke für die Antwort, schließlich, erstellen Sie eine benutzerdefinierte UIView und ich habe alle Funktionalitäten in der Methode shouldChangeCharactersInRange – user2720097

1

ich vor ein eigenes Auto-Vervollständigen Textfeld wenigen Tagen implementiert haben und die raywenderlich Tutorial war hilfreich.

http://www.raywenderlich.com/336/auto-complete-tutorial-for-ios-how-to-auto-complete-with-custom-values

Sie müssen wahrscheinlich Ihre eigene Tabelle Ansicht implementieren, um es wie der Bildschirm Sie angebracht aussehen. Das kurze Tutorial gibt Ihnen eine Idee, wie es gemacht werden sollte. Ich werde morgen meinen Code veröffentlichen, wenn Sie möchten.

-3

Versuchen Sie, diese

textboxName.autocapitalizationType=UITextAutocapitalizationTypeNone; 
+2

, wie es angenommen werden soll, will er Autovervollständigung nicht über autocapitalizationType –