Методика форматирования / раскрашивания строки NSTextView

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

7
задан brutella 25 January 2012 в 20:11
поделиться