2015-10-15 3 views
-4

У меня есть следующий NSString:NSString к NSAttributable Строка с несколькими каналами

NSString *example = @" I like cheese and ham and eggs, but ham more than cheese and cheese more than ham!"; 

я хотел бы изменить это в NSAttributable строку, так что я может выводить это в UITextView, где сыр становится гиперссылкой на WWW .cheese.com и ветчина становятся гиперссылкой на www.ham.com

Возможно ли это?

Мэтт

+0

Почему так много связанных вопросов? – Larme

+0

Возможный дубликат [Как преобразовать значение NSString в NSData?] (Http://stackoverflow.com/questions/901357/how-do-i-convert-an-nsstring-value-to-nsdata) – maxshuty

+3

@MaxPoshusta Это даже не близко к этому вопросу. – rmaddy

ответ

0

Используйте следующий код. Я только что вручную вычислил диапазон для строки. Но вы можете сделать его автоматизированным. Это просто пример.

NSMutableAttributedString *str = [[NSMutableAttributedString alloc] initWithString:@"I like cheese and ham and eggs, but ham more than cheese and cheese more than ham!"]; 
[str addAttribute:NSLinkAttributeName value:[NSURL URLWithString: @"http://www.cheese.com"] range: NSMakeRange(6, [@"cheese" length])]; 
tempTextView.attributedText = str; 

И затем использовать метод делегата ниже, чтобы получить действие:

- (BOOL)textView:(UITextView *)textView shouldInteractWithURL:(NSURL *)url inRange:(NSRange)characterRange 
Смежные вопросы