как сделать текст UITextView выделенным жирным шрифтом и не кликабельным

StackOverflow https://stackoverflow.com//questions/22064380

  •  23-12-2019
  •  | 
  •  

Вопрос

У меня есть следующий HTML-код в UITextView и хотел бы преобразовать его в UITextView

мое тело для записки

<a href="/arc/item/21">food item - more item stuff</a>;`

Позвольте мне добавить:в данный момент он отображается синим цветом, подчеркнутым и не кликабельным.Я бы хотел сделать его выделенным жирным шрифтом и не кликабельным.Я прочитал документы, касающиеся linkTextAttributes но, не использовав это, я немного не понимаю, и я действительно не вижу никакого простого способа манипулировать этим.Как бы мне просто выделить приведенную выше ссылку жирным шрифтом и черным цветом (не синим) и сохранить некликабельный характер?

Это было полезно?

Решение

Обновить (решение с использованием Атрибуты linkTextAttributes UITextView в UITextView)

self.testTextView.editable = NO;
self.testTextView.selectable = YES;
self.testTextView.userInteractionEnabled = NO;  // workaround to disable link - CAUTION: it also disables scrolling of UITextView content
self.testTextView.dataDetectorTypes = UIDataDetectorTypeLink;
self.testTextView.linkTextAttributes = @{NSFontAttributeName : [UIFont boldSystemFontOfSize:14.0f], // NOT WORKING !?
                                         NSForegroundColorAttributeName : [UIColor redColor]};

...

self.testTextView.text = @"Lorem ipsum http://www.apple.com Lorem ipsum";

Как вы можете видеть в комментариях, мне не удалось установить новый шрифт для linkTextAttributes , хотя атрибут color работал должным образом.

Если вам может сойти с рук атрибут color или какой-либо другой текстовый атрибут для оформления ваших URL-адресов, и вам не нужно беспокоиться об отключенной прокрутке UITextView, то это может быть вашим решением.


Предыдущая страница (альтернативное решение)

Если вы используете Storyboard / xib, убедитесь, что вы отменили выбор Обнаружение -> Ссылки для вашего UITextView.Вы можете сделать свою ссылку выделенной жирным шрифтом, установив для шрифта контейнера какой-либо полужирный шрифт.Если вы хотите поддерживать разные стили текста / шрифта в одном строковом объекте, то вам действительно следует искать NSAttributedString - атрибут строки или NSMutableAttributedString - изменяемая строка.

Видишь: https://developer.apple.com/library/ios/documentation/cocoa/reference/foundation/classes/NSAttributedString_Class/Reference/Reference.html.

Пример:

UIFont *linkFont = [UIFont fontWithName:@"SomeBoldTypeface" size:12];
NSString *link = @"food item - more item stuff";

NSMutableAttributedString *someString = [[NSMutableAttributedString alloc] initWithString:[NSString stringWithFormat:@"is my body for the note %@; let me ad", link]];
[someString addAttribute:NSFontAttributeName value:linkFont range:NSMakeRange(24, link.length)];

UITextView *textView = [[UITextView alloc] init];
textView.attributedText = someString;
...
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top