2012-08-03 4 views
6

Ich arbeite in der iPhone App mit UITextView. Ich möchte erlauben dem Benutzer nur kann die Nachricht kopieren und Einfügen der Nachricht. Aber ich möchte nicht zeigen Wählen Sie alle, wählen, definieren und andere. Ich befolge diesen Code unten, um die Optionen zu kontrollieren. Aber alle Optionen werden in UITextView angezeigt.Wie Kontrolle Kopieren, Einfügen, Alles auswählen, In UITextView iPhone App definieren?

- (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]; 
} 

Kann mir bitte jemand helfen, dies zu tun. Und auch ich möchte |.Text.| beim Kopieren der Nachricht nicht anzeigen. Bitte hilf mir dabei. Danke im Voraus.

Antwort

2

Vor allem, wenn der Code, den Sie oben haben nicht dann arbeiten vergessen hat, wahrscheinlich um die Klasse zu ändern von Ihnen zu Ihrer benutzerdefinierten Klasse UITextView, die die oben beschriebene Methode implementiert.

Sobald Sie getan haben, dass das, was du hast, sollte funktionieren, und anschließend sollten Sie wählen keine Rückkehr allem auch

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

auch möchten Sie vielleicht nicht für Schnitt zurück: auch vorausgesetzt, Sie tun nicht möchte, dass der Benutzer Text aus der textView entfernt.

Auch brauchen diese nicht, wenn andere Aussagen zu sein, wie sie auf einander

hängen nicht

Sie sind tatsächlich in dieser Reihenfolge

Schnitt genannt: Kopie: wählen: selectAll: einfügen: löschen:

Entfernen Sie die Funktionalität entsprechend.

+0

Vielen Dank für Ihre Antwort. Können Sie mir bitte sagen, dass ich die blaue Farbe mit zwei Zeilen deaktivieren soll, während ich den Text in UITextView kopiere? Vielen Dank. – Gopinath

2

eine Unterklasse von UITextField erstellen und die Methode canPerformAction overrride: withSender: in dieser Klasse.

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


    return NO; 
} 
+0

Beide Antworten sind korrekt und zu akzeptieren. Aber er antwortete zuerst, weshalb ich seine Antwort akzeptierte. Verwechsle mich nicht. Danke für deine Antwort. Können Sie mir bitte sagen, dass ich die blaue Farbe mit zwei Zeilen deaktivieren soll, während ich den Text in UITextView kopiere? Vielen Dank. – Gopinath