Я ищу надежную технику для простого форматирования строк (полужирный, курсив, ...) в NSTextView. Синтаксический анализ текста практически выполняется с помощью регулярных выражений, но теперь мне нужно применить черт шрифта, а также изменить размер.
Некоторые фрагменты кода о том, как сделать текст жирным
[[textView textStorage] beginEditing];
[[textView textStorage] applyFontTraits:NSFontBoldTrait range:range];
[[textView textStorage] endEditing];
Это, а также размер изменяется с
[[textView textStorage] beginEditing];
NSFont* font = [[textView textStorage] attribute:NSFontAttributeName atIndex:range.location effectiveRange:nil];
NSFont* newFont = [NSFont fontWithName:[font familyName]
size:[font pointSize] + size];
[[textView textStorage] addAttribute:NSFontAttributeName
value:newFont
range:range];
[[textView textStorage] endEditing];
отлично работает. Единственная проблема, с которой я столкнулся сейчас, заключается в том, что в некоторых случаях, когда я набираю новые символы, эти символы по умолчанию выделены жирным шрифтом или курсивом, хотя я не применяю к ним свойства.
Нужно ли что-то сбрасывать с помощью setTypingAttributes
из NSTextView
или я просто что-то здесь упускаю?