Вы нашли хорошее решение для этой функции? Я сейчас реализую нечто подобное
боко погрузился в TextKit и поинтересовался, как заполнители редактора реализованы в редакторе кода Xcode:
Вы также можете попробовать это сами и напечатать что-то вроде:<#Hello#>
, который автоматически превращается в заполнитель.
Редактор Xcode построен с TextKit. После некоторых исследований я предложил две возможные стратегии:
С помощьюNSTextAttachment
: как только строка соответствует шаблону заполнителя<#...#>
обнаружено, что строка удаляется и заменяетсяNSTextAttachment
, который обрабатывает рисование «в форме значка» фона и текста.С помощьюNSLayoutManager
: не уверен, что это сработает, но может пойти так:Начальный и конечный маркеры (глифы)<#
+ #>
скрыты (layoutManager(... shouldGenerateGlyphs, forGlyphRange...)
)Менеджер по расположению обрабатывает рисование фона значка вdrawBackground(forGlyphRange glyphsToShow: NSRange, at origin: NSPoint)
Я хотел бы реализовать нечто подобное и был бы признателен за любые предложения о том, как действовать дальше.