iOS 13 已安装的字体检索

iOS 13 Installed Fonts Retrieval

有没有办法在 iPadOS 13.1 中检索已安装字体的列表?

都没有

CTFontManagerCopyAvailablePostScriptNames

也不

[UIFont familyNames]

将获得 iPad 设置 > 常规 > 字体中显示的任何字体。有什么我想念的吗?

起初我认为您可以将 CTFontManagerCopyRegisteredFontDescriptors 与 kCTFontManagerScopePersistent 范围一起使用,但总是 return 具有 0 个项目的 CFArrayRef。我猜你自己的不安装,你是看不到的。

所以我发现iPadOS 13禁止枚举用户自定义字体。出于隐私考虑,枚举将仅 return 系统字体。请参阅时间戳 18:05 处的 Font Management and Text Scaling WWDC Video

获得这些字体的唯一方法是使用提供的 UIFontPickerViewController class 有限定制的字体选择器。

我想补充您当前的答案,要通过 UIFontPickerViewController 访问自定义用户安装的字体,您 必须向项目目标添加 字体特权。

可以在 项目 > Select 你的应用程序目标 > 签名和功能 > + Capability 或将其添加到您的 .entitlements 文件中。