6

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

我可以像这样提取字体:

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

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

4

2 回答 2

7

您可以像这样检查您的字体特征:

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

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

于 2016-07-15T21:11:07.517 回答
2

更新了Swift 4的答案并带有NSFont扩展名:

extension NSFont {
    var isBold: Bool {
        return fontDescriptor.symbolicTraits.contains(.bold)
    }
}
于 2018-04-02T03:06:04.250 回答