2010-03-26 6 views
0

Contexte:
Je suis la mise en œuvre d'une auto-suggérer flex combobox - comme les types d'utilisateur dans chaque caractère: Considérez la chaîne « Stackoverflow » et entrée utilisateur = « st »backspace flex combobox ou supprimer la clé ne supprime pas le texte en surbrillance

1) le fournisseur de données est filtré pour afficher tous les éléments commençant par 'st' 2) le texte est paramétré pour suggérer automatiquement une chaîne de sorte que la partie non typée soit mise en surbrillance.

Ainsi, par exemple, le texte combobox peut contenir st'ackoverflow «où « ackoverflow » est mis en évidence à l'aide setSelectedIndex()

Problème:
Quand je frappe en arrière-espace ou supprimer, et cochez la case » cette Valeur .text, je m'attends à ce que le dernier caractère non souligné ('t' dans le cas ci-dessus) soit supprimé et le fournisseur de données est filtré pour montrer tous les éléments commençant par 's'. Cependant la propriété de texte contient 'st', comme avant


Qu'est-ce qui me manque? Que puis-je essayer d'autre?

Répondre

0

Je réalise que mon hypothèse était erronée - quand je frappe backspace, la partie mise en évidence du texte seul devrait aller - je dois faire un peu de traitement supplémentaire pour obtenir un caractère supplémentaire au début pour aller

0

Voici comment cela a été implémenté: Écouter l'événement de retour arrière et définir un indicateur booléen. Ensuite, dans le gestionnaire de changement de liste, lisez le drapeau booléen et définissez le this.text à ce que vous voulez (c'est-à-dire) avec 1 char supprimé au-delà du début de la surbrillance. Notez que vous ne pouvez pas définir immédiatement this.text dans le gestionnaire d'arrière-espace, car le gestionnaire d'arrière-plan du contrôle textinput réinitialisera ce que nous avons défini.

Questions connexes