Da dies eine immer wieder gern gestellte Frage ist, nicht zuletzt auch von mir, habe ich mich dazu entschlossen eine deutsche Version von diesem Artikel zu erstellen. Wenn ihr also ein UITextView einsetzt um Informationen darzustellen und diese schützen wollt vor einfachem kopieren durch „Copy&Paste„, ist es möglich das Kontextmenü für den Benutzer abzuschalten. Da die Klasse UITextView selbst keine Eigenschaft dafür kennt, ist es notwendig per Vererbung eine neue Klasse zu erstellen und die Methode canBecomeFirstResponder zu überschreiben.
Die neue Klasse würde dann wie folgt aussehen:

// ReadOnlyTextView.h
#import <Foundation/Foundation.h>

@interface ReadOnlyTextView : UITextView
{

}

@end

// ReadOnlyTextView.m
#import "ReadOnlyTextView.h"

@implementation ReadOnlyTextView

// Overwrite method to disable Copy&Paste
– (BOOL)canBecomeFirstResponder
{
return NO;
}

@end

Viele geben zu diesem Thema auch den Hinweis, die Methode canPerformAction:withSender zu überschreiben. Allerdings ist das relativ häßlich, da dann trotzdem noch (zumindest ganz kurz) das Kontextmenü aufpoppt.