如何为iOS13上下文菜单操作设置自定义字体?

Alf*_*lfi 6 fonts contextmenu custom-font swift ios13

我想为 iOS 13+ 自定义上下文菜单上的操作按钮

菜单是这样的:

在此输入图像描述

我想我可以像 UIAlertController 操作一样设置自定义字体,如下所示:

let action = UIAction(title: "asdasd") { _ in}
let attributeString = NSMutableAttributedString(string: action.title)
attributeString.addAttributes([NSAttributedString.Key.font : font], range: NSMakeRange(0, action.title.count))
action.setValue(attributeString, forKey: "attributedMessage")
Run Code Online (Sandbox Code Playgroud)

但它不是这样工作的,那是怎么回事呢?

Leo*_*bus 5

您不能强制它使用特定的字体和/或文本大小。它实际上支持动态文本。因此它的大小将取决于用户设备设置。Settings > Display & Brightness > Text SizeSettings > Accessibility > Larger Text(iOS 14)。因此,您无法使用自定义字体,因为上下文菜单支持动态文本。动态文本使用的字体取决于系统,因此从 iOS 9 开始,Apple 使用 San Francisco 字体。有关 iOS 中动态类型的更多信息,您可以阅读这篇文章