我正在使用CoreText CTFontGetGlyphsForCharacters
来获取与unicode字符对应的字形,即UniChar
。现在,我想检索Ligature字符,例如 fi 。有没有办法从CoreText中检索连字字形(例如通过一系列应该组合的unichars)?
谢谢, 莫卡
答案 0 :(得分:4)
在Core Text邮件列表中提供了一些有用的建议后,解决方法就是:
您不能直接从CTFont获取连字,因为没有API可以做到这一点。
您所做的是以下内容:
CTLineCreateWithAttributedString()
从要获取其连字的字符序列中创建文本行。kCTLigatureAttributeName
设置为1或2以获取连字。CTLine
,其中包含一个CTRun
,其中包含一个CGGlyph
,它将是您正在寻找的连字字形! 如果你不想沿着这条路走下去,唯一的另一种方法就是自己解析Open - / True Type字体表,我不建议这样做。
希望有所帮助!