首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CoreText等价于[NSFont fontWithName]

CoreText等价于[NSFont fontWithName]
EN

Stack Overflow用户
提问于 2015-03-31 05:52:36
回答 1查看 156关注 0票数 1

在我们的应用程序中,我们将自定义对象的字体存储为包含字体名称的字符串(从字体面板中检索),并使用

代码语言:javascript
复制
+ (NSFont *)fontWithName:(NSString *)fontName

现在,在加载或导入文件时,我们希望检查字体名在当前系统上是否实际解析。

由于某些设计限制,我们需要在普通的旧C/C++中执行检查,即现在使用CoreText

但是,似乎不存在类似于CoreText的等效fontWithName: API调用。

  • CTFontCreateWithName总是返回字体,因为它使用回退策略。
  • CTFontCopyFullName似乎使用与NSFont接受/使用的wha不同的名称..?

所以基本上问题是:

我们如何使用CoreText功能来检查当前系统中是否存在字体,并且可以在以后使用[NSFont fontWithName:]成功地实例化字体。

EN

回答 1

Stack Overflow用户

发布于 2015-04-01 06:15:41

看来,CTFontCopyPostScriptName()总是会为[NSFont fontWithName:]理解的任何字符串返回一个有效的结果,反之亦然。

至少在我在10.8-10.10之间的实验中,使用有效的和虚构的字体名称,CTFontCopyPostScriptName()的结果总是可以用来验证字体名对于NSFont是有效的。

编辑#1

一些实验表明,为了安全起见,还可以在CTFontCopyFamilyName()中添加一个后备方案。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29361496

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档