Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
TextKit:编辑器占位符特性是如何在Xcode中实现的?_Xcode_Cocoa_Nsattributedstring_Textkit_Nstextattachment - Fatal编程技术网

TextKit:编辑器占位符特性是如何在Xcode中实现的?

TextKit:编辑器占位符特性是如何在Xcode中实现的?,xcode,cocoa,nsattributedstring,textkit,nstextattachment,Xcode,Cocoa,Nsattributedstring,Textkit,Nstextattachment,我深入研究了TextKit,并想知道如何在Xcode代码编辑器中实现编辑器占位符: 您也可以自己尝试并键入以下内容:,这会自动变成占位符 Xcode编辑器是用TextKit构建的。经过一些研究,我提出了两种可能的策略: 使用NSTextAttachment:一旦检测到与占位符模式匹配的字符串,该字符串将被删除并替换为NSTextAttachment,该字符串处理“徽章形”背景和文本的绘制 使用NSLayoutManager:不确定这是否可行,但可能会是这样: 开始标记和结束标记(图示符)是

我深入研究了TextKit,并想知道如何在Xcode代码编辑器中实现编辑器占位符:

您也可以自己尝试并键入以下内容:
,这会自动变成占位符

Xcode编辑器是用TextKit构建的。经过一些研究,我提出了两种可能的策略:

  • 使用
    NSTextAttachment
    :一旦检测到与占位符模式
    匹配的字符串,该字符串将被删除并替换为
    NSTextAttachment
    ,该字符串处理“徽章形”背景和文本的绘制
  • 使用
    NSLayoutManager
    :不确定这是否可行,但可能会是这样:
    • 开始标记和结束标记(图示符)
      是隐藏的(
      layoutManager(…shouldGenerateGlyphs,forglypRange…
    • 布局管理器在
      牵引地面(forglyprange glyphsToShow:NSRange,原点:NSPoint)中处理徽章背景的绘制。

  • 我希望实现类似的功能,并希望您能就如何继续提供建议。

    您是否找到了此功能的良好解决方案?我现在正在实施类似的措施。如果你能解决这个问题,请详细说明。:)