检查 NSFont 在 Swift 中是不是为粗体
Posted
技术标签:
【中文标题】检查 NSFont 在 Swift 中是不是为粗体【英文标题】:Check if NSFont is bold in Swift检查 NSFont 在 Swift 中是否为粗体 【发布时间】:2016-07-15 15:39:11 【问题描述】:我正在编写单元测试检查生成的 NSAttributedString 的格式。
我可以像这样提取字体:
if let font = attributedString.attributesAtIndex(0, effectiveRange: nil) as? NSFont
...
鉴于这个 NSFont 实例,我如何检查它是否为粗体?
【问题讨论】:
请检查一下它可以帮助你***.com/questions/9234587/name-and-size-from-nsfont 【参考方案1】:你可以像这样检查你的字体特征:
let descriptor = font.fontDescriptor
let symTraits = descriptor.symbolicTraits
let traitSet = NSFontTraitMask(rawValue: UInt(symTraits))
let isBold = traitSet.contains(.BoldFontMask))
但我不确定isBold
是否对于所有看似粗体的字体都是true
。
【讨论】:
【参考方案2】:更新了 Swift 4 的答案并带有 NSFont
扩展名:
extension NSFont
var isBold: Bool
return fontDescriptor.symbolicTraits.contains(.bold)
【讨论】:
以上是关于检查 NSFont 在 Swift 中是不是为粗体的主要内容,如果未能解决你的问题,请参考以下文章
无法将 MahApps ToggleSwitch 中的 ContentControl 设置为粗体