2010-04-27 5 views
0

Est-il possible de détecter à quelle position de texte l'utilisateur se positionne dans un UITextField (en ne tabulant pas, le champ de texte est en lecture seule)? Par exemple. en capturant les touches a commencé l'événement, puis le traitement de la position des onglets?Traitement de l'événement UITextField

Répondre

1

Oui, définissez un délégué pour UITextField et vous pouvez indiquer ce que l'utilisateur fait dans le champ de texte. Voir le UITextField class reference pour plus de détails.

EDIT: OK, car il est un champ de texte en lecture seule, vous devez sous-classe UITextField et remplacer le beginTrackingWithTouch:withEvent: et endTrackingWithTouch:withEvent: afin que vous puissiez voir où toucher vers le bas et tactile se sont produits withing le UIControl (UITextField est un UIControl). Ces méthodes sont appelées avec un objet UITouch qui vous indique où le contact s'est produit dans UIControl (UITextField).

Je ne sais pas pourquoi vous voudriez faire ceci. Mais de toute façon, à partir de là, vous devrez déterminer où le toucher s'est produit dans le texte, compte tenu du décalage x, y du contrôle. Ce sera une autre tâche amusante à résoudre.

+0

J'ai oublié de mentionner qu'il s'agit d'un champ de texte en lecture seule, où l'utilisateur n'édite rien – bertolami

+0

Merci. La raison en est que j'ai une liste de mots, par ex. abc, xyz dans le champ de texte et je voudrais réagir (similaire aux liens) chaque fois qu'un mot spécifique, par ex. abc est tabulé. Mais je suis probablement meilleur en ajoutant dynamiquement plusieurs champs de texte (ou labels) et ensuite déterminer quel mot a été tabulé. – bertolami

+1

Les boutons ne sont que des champs de texte en lecture seule, utilisez un UIButton pour chacun d'entre eux. P.S. sur l'iPhone, vous avez des touches, pas des onglets. – progrmr