2010-08-26 12 views
0

J'ai un UITextView qui n'est pas modifiable par défaut, de sorte que les détecteurs de données affichent des adresses et des numéros de téléphone. J'aimerais pouvoir laisser l'utilisateur appuyer n'importe où dans la vue de texte pour le modifier et y placer le point d'insertion. Malheureusement, je ne parviens pas à obtenir le point d'insertion et un seul clic suffit pour modifier la vue du texte (pour un exemple de ce que j'essaie d'accomplir, dans Notes.app créer une nouvelle note avec une URL.)Définition de la sélection UITextView à la pression

J'ai sous-classé UITextView et override - (void)touchesBegan:withEvent: afin qu'il vérifie si la vue de texte est éditable. Si ce n'est pas le cas, j'active l'édition.

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event 
{ 
    if (!self.editable) 
    { 
    self.editable = YES; 
    } 

    [super touchesBegan:touches withEvent:event]; 
} 

Je ne suis pas sûr mais où procéder à partir de là que vient d'appeler becomeFirstResponder met le point d'insertion en haut.

Répondre

0

Cela ressemble à vous pouvez définir la propriété selectedRange pour placer le curseur où vous voulez. Cependant, vous devrez traduire des points (dans votre méthode touchesBegan) en valeur NSRange.

Une autre option pourrait être de toujours avoir votre TextView modifiable, et d'utiliser la méthode UITextViewDelegatetextViewShouldBeginEditing.

Je n'ai jamais rien fait de tout cela, alors prenez ces suggestions avec un grain de sel.