comment faire pour déplacer le curseur dans UITextField après la définition de sa valeur

quelqu'un peut-il m'aider à ce sujet: j'ai besoin de mettre en œuvre UITextField pour le numéro d'entrée. Ce numéro doit toujours être au format décimal à 4 places par exemple 12.3456 ou 12.3400.
J'ai donc créé NSNumberFormatter qui m'aide avec des décimales.

Je suis en train de le UITextField valeur dans

-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
la méthode.
Je proccess d'entrée, utilisez formateur et enfin appeler [textField setText: myFormattedValue];

Cela fonctionne bien, mais cet appel déplace le curseur à la fin de mon domaine. Qui est indésirable. E. g. J'ai 12.3400 dans mon domaine et que le curseur est situé sur le début et types d'utilisateurs de la numéro 1. La valeur du résultat est 112.3400 mais le curseur est déplacé à la fin. Je veux finir avec le curseur lorsque l'utilisateur s'attend (juste après le numéro 1 récemment ajouté). Il existe certaines rubriques sur le réglage du curseur dans TextView mais c'est UITextField. J'ai aussi essayé d'attraper selectedTextRange du champ, qui enregistre la position du curseur correctement, mais après setText appel de méthode, cela change automatiquement et l'origine UITextRange est perdu (changé à actuel). j'espère que mon explication est claire.

S'il vous plaît, m'aider à ce sujet. je vous remercie beaucoup.

MODIFIER : Finalement, j'ai décidé de passer à la fonctionnalité de modification de la présentation après toute modification et fonctionne assez bien. Je l'ai fait par l'ajout d'un sélecteur de forControlEvents:UIControlEventEditingDidEnd.

  • Quand vous lisez les selectedTextRange, pouvez-vous ne pas le copier en tant que propriété dans la classe qui joue le rôle de UITextFieldDelegate et puis re-définir après setText:?
  • Phillip, qui ne fonctionne pas. Après avoir défini le texte avec setText, le UITextRange que vous avez recueillies avant la mise en place du texte est réinitialisé à la valeur null, et donc vous ne pouvez pas la remettre par la suite à la fin UITextField.
InformationsquelleAutor user1135839 | 2012-06-22