检查 Swift 中的 NSFont 是否为粗体
Check if NSFont is bold in Swift
我正在编写单元测试来检查生成的 NSAttributedString.
的格式
我可以这样提取字体:
if let font = attributedString.attributesAtIndex(0, effectiveRange: nil) as? NSFont {
...
}
鉴于此 NSFont 实例,我如何检查它是否为粗体?
您可以这样检查您的字体特征:
let descriptor = font.fontDescriptor
let symTraits = descriptor.symbolicTraits
let traitSet = NSFontTraitMask(rawValue: UInt(symTraits))
let isBold = traitSet.contains(.BoldFontMask))
但我不确定 isBold
是否对所有看似粗体的字体都是 true
。
Swift 4 的更新答案并带有 NSFont
扩展名:
extension NSFont {
var isBold: Bool {
return fontDescriptor.symbolicTraits.contains(.bold)
}
}
我正在编写单元测试来检查生成的 NSAttributedString.
的格式我可以这样提取字体:
if let font = attributedString.attributesAtIndex(0, effectiveRange: nil) as? NSFont {
...
}
鉴于此 NSFont 实例,我如何检查它是否为粗体?
您可以这样检查您的字体特征:
let descriptor = font.fontDescriptor
let symTraits = descriptor.symbolicTraits
let traitSet = NSFontTraitMask(rawValue: UInt(symTraits))
let isBold = traitSet.contains(.BoldFontMask))
但我不确定 isBold
是否对所有看似粗体的字体都是 true
。
Swift 4 的更新答案并带有 NSFont
扩展名:
extension NSFont {
var isBold: Bool {
return fontDescriptor.symbolicTraits.contains(.bold)
}
}