3

J'ai besoin d'un moyen pour désactiver la sélection automatique à partir d'un UITextView.Existe-t-il un moyen de bloquer le copier/coller à partir de textview?

alt text

Je désélectionné tous les attributs de constructeur d'interface, mais quand je touche le texte, la sélection apparaît!

Vous avez une solution? Un tour de magie?

merci.

+1

'userInteractionEnabled = NO;' travaillerait-il pour vos besoins? – thelaws

Répondre

5

Vous devez créer une sous-classe de UITextView et remplacer la méthode canPerformAction.

- (BOOL)canPerformAction:(SEL)action withSender:(id)sender 
{ 
    if (action == @selector(copy:) 
     return NO; 
    return [super canPerformAction:action withSender:sender]; 
} 

Les valeurs de sélection que vous pouvez attendre de canPerformAction se trouvent dans le UIResponderStandardEditActions Protocol Reference

Le UIResponder Class Reference aidera aussi.

canPerformAction: withSender:

Cette implémentation par défaut de cette méthode retourne YES si la classe répondeur met en œuvre l'action demandée et appelle le prochain répondeur si elle ne fonctionne pas. Les sous-classes peuvent remplacer cette méthode pour activer les commandes de menu basées sur sur l'état actuel; par exemple, vous activerait la commande Copier si est une sélection ou désactivera la commande Coller si la table de montage n'a pas contient des données avec le type de représentation correct. Si aucun répondeur dans la chaîne de répondeur renvoie YES, la commande de menu est désactivée.

0

Regardez UIResponder Class Reference

donc créer une sous-classe de UITextView qui remplace la méthode canPerformAction:withSender: et le retour « NON » pour chaque action que vous ne voulez pas effectuer sur textview.

Questions connexes