我深入研究了 TextKit,想知道编辑器占位符是如何在 Xcode 代码编辑器中实现的:
您也可以自己尝试一下并输入以下内容:<#Hello#>
,它会自动变成占位符。
Xcode 编辑器是使用 TextKit 构建的。经过一番研究,我想出了两种可能的策略:
- Using
NSTextAttachment
:只要字符串与占位符模式匹配<#...#>
检测到时,该字符串将被删除并替换为NSTextAttachment
,它处理绘制“徽章形”背景和文本。
- Using
NSLayoutManager
: not sure if this would work, but it could go like this:
- 开始和结束标记(字形)
<#
+ #>
被隐藏(layoutManager(... shouldGenerateGlyphs, forGlyphRange...)
)
- 布局管理器负责绘制徽章背景
drawBackground(forGlyphRange glyphsToShow: NSRange, at origin: NSPoint)
我想实现类似的东西,并且非常感谢任何关于如何进行的建议。
None
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)