Poszukuję niezawodnej techniki do prostego formatowania napisów (pogrubienie, kursywa, ...) w NSTextView. Parsowanie tekstu jest prawie gotowe za pomocą wyrażenia regularnego, ale teraz muszę zastosować cechę czcionki, a także zmienić jej rozmiar.Technika formatowania/kolorowania łańcucha NSTextView
Niektóre fragmenty kodu, w jaki sposób mogę dokonać tekst pogrubiony
[[textView textStorage] beginEditing];
[[textView textStorage] applyFontTraits:NSFontBoldTrait range:range];
[[textView textStorage] endEditing];
To, a także zmiany wielkości z
[[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];
działa dobrze. Jedyny problem, jaki mam teraz, polega na tym, że w niektórych przypadkach, kiedy wpisuję nowe znaki, te znaki są domyślnie pogrubione lub kursywą, nawet jeśli nie zastosuję do nich właściwości.
Czy muszę zresetować coś za pomocą setTypingAttributes
z NSTextView
, czy po prostu tęsknię za czymś tutaj?
Muszę zrobić coś podobnego. Czy możesz powiedzieć, gdzie wywołujesz kod formatowania? W moim przypadku mam widok tekstowy, który używa powiązania, więc można go zmodyfikować albo poprzez edycję, albo poprzez zmianę wykonaną przez kontroler bazowy. – paulmelnikow