2014-01-24 2 views
3

enter image description hereiOS7 UITextView установлен атрибут NSLinkAttributeName, но не может нажать

@interface ViewController()<UITextViewDelegate> 


- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    NSMutableAttributedString *str = [[NSMutableAttributedString alloc] initWithString:@"www.google.com"]; 
    NSDictionary *linkDic = @{ NSLinkAttributeName : [NSURL URLWithString:@"http://www.google.com"] }; 
    [str setAttributes:linkDic range:[[str string] rangeOfString:@"www.google.com"]]; 
    _textView.attributedText = str; 
} 


- (BOOL)textView:(UITextView *)textView shouldInteractWithURL:(NSURL *)URL inRange:(NSRange)characterRange 
{ 
    NSLog(@"=============%@",URL); 
    return YES; 
} 

там что-то не так?

ответ

10

Установите в IB> Утилиты> Атрибут Инспектор. Примечательно, что UITextView не может быть редактируемым и иметь ссылки включены.

UITextView Settings

Вы также можете сделать то же самое с кодом:

_textView.editable = NO; 
_textView.dataDetectorTypes = UIDataDetectorTypeLink; 
+0

Тана это! Большое спасибо! – jxdwinter

+4

также необходимо: textView.selectable должно быть ДА, иначе это не будет работать – Wirsing

+1

Спасибо за добавленный gotcha @Wirsing! Раздражает, что это означает, что пользователь может также случайно выбрать текст ... – jowie

Смежные вопросы