Update: Von ios10,
- (BOOL)textView:(UITextView *)textView shouldInteractWithURL:(NSURL *)URL inRange:(NSRange)characterRange interaction:(UITextItemInteraction)interaction;
Von ios7und später UITextView
hat die Delegatenmethode:
- (BOOL)textView:(UITextView *)textView shouldInteractWithURL:(NSURL *)URL inRange:(NSRange)characterRange *NS_DEPRECATED_IOS(7_0, 10_0, "Use textView:shouldInteractWithURL:inRange:forInteractionType: instead");*
um die Klicks auf Links abzufangen. Und das ist der beste Weg, es zu tun.
Zum ios6und früher ist es eine gute Möglichkeit, dies zu tun, indem Sie das unterordnen UIApplication
und überschreiben-(BOOL)openURL:(NSURL *)url
@interface MyApplication : UIApplication {
}
@end
@implementation MyApplication
-(BOOL)openURL:(NSURL *)url{
if ([self.delegate openURL:url])
return YES;
else
return [super openURL:url];
}
@end
Sie müssen openURL:
in Ihrem Delegaten implementieren .
UIApplication
Um die Anwendung mit Ihrer neuen Unterklasse von zu starten , suchen Sie die Datei main.m in Ihrem Projekt. In dieser kleinen Datei, die Ihre App bootet, befindet sich normalerweise die folgende Zeile:
int retVal = UIApplicationMain(argc, argv, nil, nil);
Der dritte Parameter ist der Klassenname für Ihre Anwendung. Ersetzen Sie diese Zeile durch:
int retVal = UIApplicationMain(argc, argv, @"MyApplication", nil);
Das hat den Trick für mich getan.