2011-06-14 7 views
1

Est-il possible de compléter automatiquement une base UITextField sur ce qui est entré? La raison pour laquelle j'ai besoin de ceci est parce que j'ai un ensemble prédéfini de mots que l'utilisateur doit choisir et la liste est longue d'environ 1000 articles. Je veux afficher dans UITableView et laisser l'utilisateur choisir mais avoir 1k éléments dans la liste des tables n'est pas une bonne idée. MerciUITxtField autocomplete

Répondre

0

Vous pouvez le faire en ne montrant pas tous les éléments 1k dans la vue tableau, mais vous pouvez remplir votre vue de table que l'utilisateur commence à taper des lettres dans le champ de texte. Pour cela, vous devez placer tous les éléments dans une structure de données ou une base de données à partir de laquelle vous pouvez utiliser un tri ou une requête pour obtenir les éléments liés à ce que l'utilisateur a saisi. Par exemple, si l'utilisateur commence à taper une lettre à partir de 'a', alors récupérez les éléments qui ont la lettre a et remplissez votre table avec eux. Une façon de le faire est mis tout dans la base de données et UITextField délégué

- (void)textFieldDidBeginEditing:(UITextField *)textField 

commencer un objet NSTimer qui va appeler une fonction pour toutes les secondes et cette fonction vous donnera des données sélectionnées à partir de la base de données, remplir votre table avec cette Les données.

Aussi vous devez arrêter cette temporisation dans UITextField délégué -

- (BOOL)textFieldShouldReturn:(UITextField *)textField 

ou

-(void) textFieldDidEndEditing:(UITextField *)textField 
0

Vous aurez besoin de tirer parti TextFieldTextDidChange, comme mentionné ici: How can I get a textDidChange (like for a UISearchBar) method for a UITextField? mais juste la façon dont vous présentez la mise à disposition set, je ne suis pas si sûr ... vous pouvez garder la table vide jusqu'à ce que X caractères soient entrés, puis rechercher des correspondances pour remplir votre table (maintenant plus petite) avec