2010-04-04 10 views
1

Je souhaite afficher du texte et je souhaite savoir où cet utilisateur touche dans ce texte. Parce que le texte pourrait être long, je voulais utiliser un UITextView afin que l'emballage et tout serait pris en charge. Je veux ma propre gestion d'événement pour quand un contact commence ou se déplace. Mon problème est que la loupe et sélectionner/sélectionner tout le menu interrompent mes événements touchesMoved.Désactivation de la loupe dans UITextView dans une application iPhone

Comment puis-je désactiver la loupe, tout en laissant l'interaction de l'utilisateur activée pour que je puisse détecter les contacts?

Répondre

1

Je vous suggère de vérifier les gestureRecognizers propriété.

Vous en trouverez beaucoup dans le tableau et vous voudrez peut-être soit les supprimer tous, soit trouver ceux qui déclenchent l'événement que vous voulez intercepter et supprimer/remplacer.

Je l'ai utilisé pour supprimer des fonctionnalités verre copier/coller et grossissante d'un UITextField

+0

Dwery, comment avez-vous le faire? J'ai enlevé 8 reconnaisseurs de gestes mais la loupe est toujours là quand je tiens. –

+0

Natan, les reconnaisseurs de mouvements IIRC sont réinitialisés après chaque événement. Donc, je supprime les reconnaisseurs de stock et ajouter le mien après chaque événement – dwery

+0

Merci, Dwery! Je vais vérifier ça –

2

Vous devez créer une sous-classe et remplacer ces deux fonctions pour désactiver select/select all/copy/ et magnifying

select/select all/copy/:

- (BOOL)canPerformAction:(SEL)action withSender:(id)sender 

Référence: https://stackoverflow.com/a/1429320/1526023

magnifying:

- UILongPressGestureRecognizer 
- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer 

Référence: https://stackoverflow.com/a/10641203/1526023