2015-05-09 2 views
1

У меня есть два стиля для текста NSTextView. Одним из них является стиль шрифта, а другой верхний индекс, используя NSBaselineOffsetAttributeName показанный ниже:Атрибут AttributedString теряет стиль шрифта после выбора текста в NSTextView

aVerseNumberMutableString = NSMutableAttributedString(string: verseNumber.description, 
    attributes: [NSBaselineOffsetAttributeName:NSNumber(double: 6.0), NSFontAttributeName:NSFont(name: "Georgia", size: 12.0)!]) 

Они работают отлично, пока я не выбрать текст в NSTextView, а затем вызвать NSTextView изменить его текст, используя NSPopUpButton. Затем стиль шрифта надстрочного шрифта возвращается к стилю другого текста. Здесь все строки кода вместе.

// Get the verse number and then add attributes 
aVerseNumberMutableString = NSMutableAttributedString(string: verseNumber.description, 
    attributes: [NSBaselineOffsetAttributeName:NSNumber(double: 6.0), NSFontAttributeName:NSFont(name: "Georgia", size: 12.0)!]) 

// Get the verse and then add attributes 
aVerseMutableString = NSMutableAttributedString(string: " " + book.verseText + " ", attributes: [NSFontAttributeName:NSFont(name: "Georgia", size: 20.0)!]) 

// Prepend the verse number to the verse 
theContent.appendAttributedString(aVerseNumberMutableString) 
theContent.appendAttributedString(aVerseMutableString) 

Я могу видеть, как это может произойти, потому что я добавив две строки вместе, но почему это происходит только тогда, когда я выбираю текст, а затем вызвать содержимое, чтобы изменить в NSTextView?

Video of the problem. Just look at the first superscript as I change the content before selecting text and after selecting text.

ответ

1

Вопросы, не в создании приписанного строки. Это было с тем, как я заполнил контент NSTextView. Я удалить текст в представлении с помощью

contentTextView.textStorage!.mutableString.setString("") 

и затем заполнить его с помощью

contentTextView.insertText(getChapterText("1")) 

Что я использую было NSTextStorage сделать все это. Итак, теперь вместо двух строк кода у меня теперь есть один.

contentTextView.textStorage!.setAttributedString(getChapterText("1")) 

Теперь выбор текста, или даже просто нажав внутри вида текста, не меняет стиль текста, как это было раньше.

+1

Спасибо, что решает загадку, которую я пытался выяснить сейчас :) – uchuugaka

Смежные вопросы