Проверьте, выделен ли NSFont в Swift
Я пишу модульный тест, проверяющий формат сгенерированной NSAttributedString.
Я могу извлечь шрифт так:
if let font = attributedString.attributesAtIndex(0, effectiveRange: nil) as? NSFont {
...
}
Учитывая этот экземпляр NSFont, как я могу проверить, выделен ли он жирным шрифтом или нет?
2 ответа
Решение
Вы можете проверить свои особенности шрифта следующим образом:
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)
}
}