You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

macOS Monterey系统无法调用SF Pro Text字体问题咨询

问题原因
  • macOS 12 Monterey 对内置的 San Francisco 系列字体做了访问权限收紧,SF Pro Text、SF Pro Display、SF Mono 等均属于系统私有字体,不再对第三方应用开放直接通过家族名称检索、调用的权限,macOS 11 Big Sur 尚未完全落地该限制,所以你在旧系统环境可以正常调用。
  • 受权限限制影响,Monterey 下的 NSFontManager 字体枚举、Interface Builder 的字体选择器都不会返回这些私有字体的相关条目,硬编码家族名调用自然会返回 nil。
解决方案
  • 优先使用官方系统字体 API 调用:不要硬编码 SF Pro Text 家族名,改用苹果提供的系统字体构造方法,底层会自动匹配对应字重、尺寸的 SF 字体,和你直接调用 SF Pro Text 的效果完全一致,示例代码如下:
// 直接获取对应尺寸的系统加粗字体
NSFont *boldFont = [NSFont boldSystemFontOfSize:16.0];
// 若需要更精细的字重控制,可使用下方方法
NSFont *customBoldFont = [NSFont systemFontOfSize:16.0 weight:NSFontWeightBold];
  • 若业务确实需要固定通过 fontWithFamily: 接口调用 SF Pro Text,你可以手动安装官方 SF Pro 字体包到 Monterey 系统的用户字体目录,或是将 SF Pro 字体文件嵌入到你的应用包中并在项目配置里注册字体资源,即可正常通过家族名检索到对应字体。
补充说明

我原本以为它属于系统字体,会随系统预装
该字体确实是系统预装字体,但仅对系统进程、苹果官方应用开放直接调用权限,第三方应用默认无法直接通过公开字体接口访问。

内容的提问来源于stack exchange,提问作者Z S

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 05:15:01