UITextView имеет возможность определять URL-адреса и вставлять гиперссылки соответственно. Вы можете включить эту опцию в:
myTextView.dataDetectorTypes = UIDataDetectorTypeLink;
Затем необходимо настроить приложение, чтобы оно перехватывало этот URL-запрос и позволяло приложению обрабатывать его. Я опубликовал стандартный класс на github, который делает это, что может быть самым простым маршрутом: http://github.com/nbuggia/Browser-View-Controller--iPhone-.
Первым шагом является создание подкласса UIApplication, чтобы вы могли переопределить тех, кто принимает меры по запросу openUrl. Вот как может выглядеть этот класс:
#import <UIKit/UIKit.h>
#import "MyAppDelegate.h"
@interface MyApplication : UIApplication
-(BOOL)openURL:(NSURL *)url;
@end
@implementation MyApplication
-(BOOL)openURL:(NSURL *)url
{
BOOL couldWeOpenUrl = NO;
NSString* scheme = [url.scheme lowercaseString];
if([scheme compare:@"http"] == NSOrderedSame
|| [scheme compare:@"https"] == NSOrderedSame)
{
// TODO - Update the cast below with the name of your AppDelegate
couldWeOpenUrl = [(MyAppDelegate*)self.delegate openURL:url];
}
if(!couldWeOpenUrl)
{
return [super openURL:url];
}
else
{
return YES;
}
}
@end
Затем вам нужно обновить main.m, указав MyApplication.h
в качестве привилегированного делегата для вашего класса UIApplication. Откройте main.m и измените эту строку:
int retVal = UIApplicationMain(argc, argv, nil, nil);
к этому
int retVal = UIApplicationMain(argc, argv, @"MyApplication", nil);
Наконец, вам нужно реализовать метод [(MyAppDelegate *) openURL: url], чтобы он делал то, что вы хотели бы с URL. Например, можно открыть новый контроллер представления с UIWebView и показать URL. Вы могли бы сделать что-то вроде этого:
- (BOOL)openURL:(NSURL*)url
{
BrowserViewController *bvc = [[BrowserViewController alloc] initWithUrls:url];
[self.navigationController pushViewController:bvc animated:YES];
[bvc release];
return YES;
}
Надеюсь, это сработает для вас.