2012-08-03 16 views
6

Estoy trabajando en la aplicación de iPhone utilizando UITextView. Quiero permitir que el usuario solo pueda Copiar el mensaje y Pegar el mensaje. Pero yo no quiero mostrar Seleccionar todo, Seleccionar, Definir y otros. Estoy siguiendo este código a continuación para controlar las opciones. Pero, todas las opciones se muestran en el clic UITextView.Cómo controlar Copiar, Pegar, Seleccionar todo, Definir en la aplicación UITextView para iPhone?

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

    return [super canPerformAction:action withSender:sender]; 
} 

¿Alguien puede ayudarme a hacer esto. Y tampoco quiero mostrar |.Text.| mientras copio el mensaje. Por favor, ayúdame a hacer esto. Gracias por adelantado.

Respuesta

2

En primer lugar, si el código que tienes arriba no funciona, probablemente hayas olvidado cambiar la clase de tu UITextView por la clase personalizada que implementa el método anterior.

Una vez que hayas hecho esto lo que tienes debería funcionar y después, deberá devolver un no por Seleccionar todo también

if (action == @selector(selectAll:)) 
     { 
      return NO; 
     } 

también es posible que desee devolver un no por corte: también suponiendo que no lo hace quiere que el usuario elimine el texto de textView.

también estos no tienen que ser si else, ya que no dependen unos de otros

En realidad se llaman en este orden

corte: copia: seleccione : selectAll: pegar: eliminar:

Elimine la funcionalidad según corresponda.

+0

Gracias por la respuesta. ¿Puede decirme que desactive el color azul con dos líneas mientras copia el texto en UITextView? Gracias. – Gopinath

2

Cree una subclase de UITextField y anule el método canPerformAction: withSender: en esa clase.

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


    return NO; 
} 
+0

Ambas respuestas son correctas y confusas de aceptar. Pero respondió primero, por eso acepté su respuesta. No me confundas Gracias por tu respuesta. ¿Puede decirme que desactive el color azul con dos líneas mientras copia el texto en UITextView? Gracias. – Gopinath

Cuestiones relacionadas