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 文件中。
有没有办法在 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 文件中。