2013-06-13 3 views
0

Как бы идти о рисовании текста давал NSTextView, чтобы выглядеть примерно так: http://i.imgur.com/R2yPflH.pngПользовательского рисунок стиля текста в NSTextView

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

У меня есть код, который преобразует NSString в NSBezierPath, который работает, но я не уверен, как рисовать его в NSTextView.

Спасибо заранее!

ответ

1

Для пользовательского рисования в NSTextView вам необходимо подклассифицировать NSLayoutManager и обработать чертеж там. То, что вы хотите сделать, будет непросто, но я не думаю. В прошлом я подклассифицировал NSLayoutManager, чтобы нарисовать дополнительные метки за символами и между символами, но вам действительно нужно нарисовать затронутые диапазоны текста самостоятельно, переопределив -drawGlyphsForGlyphRange: atPoint :. Вы можете использовать пройденный диапазон, преобразовать его в диапазон символов, используя -characterRangeForGlyphRange: actualGlyphRange :, и проверить символы в диапазоне - это те, к которым вы хотите применить свой собственный чертеж. Для таких диапазонов вы сами сделаете чертеж. Трудная часть будет гарантировать, что ваша строка будет нарисована в нужном месте, принимая во внимание межстрочный интервал и т. Д. -lineFragmentRectForGlyphAtIndex: ... и -locationForGlyphAtIndex: должны быть ваши друзья здесь.

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