L'obtention de la position du curseur de UITextField dans ios
Je suis en train d'essayer de contrôler la position du curseur dans le UITextField. Les utilisateurs ne peuvent pas insérer plus d'un caractère à la fois dans le milieu de la zone de texte. Il se déplace à la fin de la zone de texte. Donc, ce post dans: Contrôle de la position du curseur dans la UITextField Il résout mon problème. Mais j'ai besoin de connaître la position actuelle du curseur.
Mon code ressemble à ceci:
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
if (textField.tag == 201)
{
[myclass selectTextForInput:textField atRange:NSMakeRange(idx, 0)];
}
}
Il me donne une erreur lors de l'idx. Comment puis-je trouver cela?
OriginalL'auteur lakesh | 2013-05-08
Vous devez vous connecter pour publier un commentaire.
UITextField
est conforme à laUITextInput
protocole qui a des méthodes pour obtenir la sélection en cours. Mais les méthodes sont complexes. Vous avez besoin de quelque chose comme ceci:OriginalL'auteur rmaddy
Swift version
Ma réponse complète sur l'obtention et le réglage de la position du curseur est ici.
OriginalL'auteur Suragch
Le code que vous avez posté ne fonctionne pas pour déterminer où se trouve le curseur. Vous avez besoin de la méthode get, non pas sur l'ensemble. Il devrait être quelque chose le long des lignes de:
Pour plus d'informations, - vérifier l'UITextInput protocole http://developer.apple.com/library/ios/#documentation/UIKit/Reference/UITextInput_Protocol/Reference/Reference.html#//apple_ref/occ/intf/UITextInput
Mise à jour: @rmaddy a posté quelques bonnes extra j'ai raté dans ma réponse - comment gérer la position du texte à partir de la NSTextRange et convertir NSTextPosition int.
Vous ne pouvez pas garantir que. Pour supprimer le caractère à la première place, vous devrez régler la totalité du contenu du champ. Ce qui va inévitablement déplacer le curseur jusqu'à la fin. Vous devrez alors revenir à la position que vous voulez.
OriginalL'auteur Dimitar K