我正在使用CoreText CTFontGetGlyphsForCharacters获取与Unicode字符对应的字形,即UniChar。现在,我想检索连字,例如fi。有什么方法可以从CoreText中检索连字字形(例如,通过应合并的一系列单字符)?

谢谢,
Mocha

最佳答案

在从Core Text邮件列表中获得了一些有用的建议之后,以下是解决方案:

您无法直接从CTFont获取连字,因为没有API可以这样做。

相反,您将执行以下操作:

  • 使用CTLineCreateWithAttributedString()从您要获取其连字的字符序列创建文本行。
  • 确保在属性字符串上将kCTLigatureAttributeName设置为1或2以获得连字。
  • 如果正确完成操作,并使用字体中存在的连字,您应该得到一个包含一个CTLineCTRun,其中一个CGGlyph将包含您要查找的连字形!

  • 如果您不想沿这条路线走,唯一的另一种方法似乎是自己解析Open-/ True Type字体表,我不建议这样做。

    希望有帮助!

    关于macos - CoreText:获取连字标志符号,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26770894/

    10-11 16:06