Я ищу надежный метод для простого форматирования строк (жирный, курсив, ...) в 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
, или я просто что-то здесь пропущу?