TextKit:编辑器占位符特性是如何在Xcode中实现的?
我深入研究了TextKit,并想知道如何在Xcode代码编辑器中实现编辑器占位符: 您也可以自己尝试并键入以下内容:TextKit:编辑器占位符特性是如何在Xcode中实现的?,xcode,cocoa,nsattributedstring,textkit,nstextattachment,Xcode,Cocoa,Nsattributedstring,Textkit,Nstextattachment,我深入研究了TextKit,并想知道如何在Xcode代码编辑器中实现编辑器占位符: 您也可以自己尝试并键入以下内容:,这会自动变成占位符 Xcode编辑器是用TextKit构建的。经过一些研究,我提出了两种可能的策略: 使用NSTextAttachment:一旦检测到与占位符模式匹配的字符串,该字符串将被删除并替换为NSTextAttachment,该字符串处理“徽章形”背景和文本的绘制 使用NSLayoutManager:不确定这是否可行,但可能会是这样: 开始标记和结束标记(图示符)是
,这会自动变成占位符
Xcode编辑器是用TextKit构建的。经过一些研究,我提出了两种可能的策略:
NSTextAttachment
:一旦检测到与占位符模式
匹配的字符串,该字符串将被删除并替换为NSTextAttachment
,该字符串处理“徽章形”背景和文本的绘制NSLayoutManager
:不确定这是否可行,但可能会是这样:
- 开始标记和结束标记(图示符)
是隐藏的(
)layoutManager(…shouldGenerateGlyphs,forglypRange…
- 布局管理器在
牵引地面(forglyprange glyphsToShow:NSRange,原点:NSPoint)中处理徽章背景的绘制。
我希望实现类似的功能,并希望您能就如何继续提供建议。您是否找到了此功能的良好解决方案?我现在正在实施类似的措施。如果你能解决这个问题,请详细说明。:)