检查NSFont在Swift中是否是粗体

时间:2016-07-15 15:39:12

标签: swift nsfont

我正在编写单元测试,检查生成的 NSAttributedString 的格式。

我可以像这样提取字体:

if let font = attributedString.attributesAtIndex(0, effectiveRange: nil) as? NSFont {
    ...
}

鉴于此 NSFont 实例,如何检查它是否为粗体?

2 个答案:

答案 0 :(得分:7)

您可以检查以下字体特征:

let descriptor = font.fontDescriptor
let symTraits = descriptor.symbolicTraits
let traitSet = NSFontTraitMask(rawValue: UInt(symTraits))
let isBold = traitSet.contains(.BoldFontMask))

但我不确定isBold对于所有看似粗体的字体是否true

答案 1 :(得分:1)

更新了 Swift 4 NSFont扩展程序的答案:

extension NSFont {
    var isBold: Bool {
        return fontDescriptor.symbolicTraits.contains(.bold)
    }
}