Подчеркните текст в UITextView

Как подчеркнуть текст в UITextView. Я понимаю, что мне нужно будет создать подкласс UITextView, но что будет в drawRect:?

Спасибо.

Ответ 1

Попробуйте использовать NSAttributedString следующим образом и установите в UITextView. Это работает для iOS6.

NSMutableAttributedString *attString = [[NSMutableAttributedString alloc] initWithString:@"Some String"];
[attString addAttribute:(NSString*)kCTUnderlineStyleAttributeName 
                   value:[NSNumber numberWithInt:kCTUnderlineStyleSingle] 
                   range:(NSRange){0,[attString length]}];

Для получения дополнительной информации о NSAttributedString проверьте Как вы используете NSAttributedString?

Например: -

textView.attributedText = attString;

Из документация по яблоку в UITextView,

В iOS 6 и более поздних версиях этот класс поддерживает несколько стилей текста через использование свойства attributedText. (Стилированный текст не поддерживается в более ранние версии iOS.) Установка значения для этого свойства вызывает текстовое представление, чтобы использовать информацию о стиле, указанную в атрибуте строка. Вы все еще можете использовать шрифт, textColor и textAlignment свойства для установки атрибутов стиля, но эти свойства применимы ко всем текста в текстовом виде.

attributedText:

Текст в стиле, отображаемый текстовым представлением.

@property(nonatomic,copy) NSAttributedString *attributedText

Обсуждение: По умолчанию это свойство равно нулю. Присвоение нового значения этому свойству также заменяет значение свойства text теми же строковыми данными, хотя и без какой-либо информации форматирования. Кроме того, присвоение нового значения обновляет значения в свойствах font, textColor и textAlignment, чтобы они отображали информацию о стиле, начиная с позиции 0 в атрибутной строке.

Ответ 2

Если вы хотите не включать CoreText, вы можете использовать атрибутную строку с этим атрибутом:

@{NSUnderlineStyleAttributeName: @(NSUnderlineStyleSingle)}

Ответ 3

Если это статический текст, вы можете подчеркнуть его в Interface Builder. Обязательно сделайте текст "Attributed" первым, выбрав "Attributed" в раскрывающемся меню:

enter image description here

Ответ 4

textViewMessage.linkTextAttributes = @{NSForegroundColorAttributeName: [UIColor blueColor], NSUnderlineStyleAttributeName: [NSNumber numberWithInt:NSUnderlineStyleSingle]};

Ответ 5

Если вы хотите отформатировать текст (подчеркнутые слова, ссылки, цветные слова...) Я предлагаю вам использовать FTCoreText

Ответ 6

-(IBAction)underline:(id)sender
{
    NSDictionary *underlineAttribute = @{NSUnderlineStyleAttributeName: @(NSUnderlineStyleSingle)};
    texts.attributedText = [[NSAttributedString alloc] initWithString:texts.text
                                                           attributes:underlineAttribute];
}

Ответ 7

Если вы используете iOS 6, вы можете использовать атрибут attributedText UITextView. Примените форматирование подчеркивания к тексту. Вы также можете установить свойство typingAttributes для обеспечения того, чтобы текст, который пользователь вводит, имеет определенный набор форматирования, если вы хотите.

Ответ 9

Я рекомендую вам использовать MFUnderlinedTextView, это будет полезно.

Ответ 10

Вы не можете использовать "kCTUnderlineStyleAttributeName" или "kCTUnderlineStyleSingle" Теперь вы должны сделать это следующим образом:

    NSMutableAttributedString *attString = [[NSMutableAttributedString alloc] initWithString:@"Text"];
[attString addAttribute:NSUnderlineStyleAttributeName
                  value:@(NSUnderlineStyleSingle)
                  range:(NSRange){0,[attString length]}];

Ответ 11

Чтобы подчеркнуть текст, вам нужно перейти туда, где вы можете выбрать опции копирования, вырезания и удаления, теперь есть больше параметров, таких как B/I/U (полужирный, курсив, подчеркивание). Выберите этот вариант, и это все. И чтобы это не удалось, снова выберите опцию подчеркивания.