Я все еще пытаюсь преобразовать TextKit из Objective-C в Swift. Это сводит меня (и вас?) с ума :-( После исправления некоторых проблем теперь у меня проблемы с полужирным (и курсивным) шрифтом:
func addOrRemoveFontTraitWithName(traitName: String, andValue traitValue: UInt32, andRange selectedRange: NSRange) {
let currentAttributesDict : NSDictionary! = self.textView.textStorage.attributesAtIndex(selectedRange.location, effectiveRange: nil)
let currentFont : UIFont = currentAttributesDict .objectForKey(NSFontAttributeName) as! UIFont
...
var existingTraitsWithNewTrait : UInt32! = nil
var changedFontDescriptor : UIFontDescriptor! = nil
if fontNameAttribute.rangeOfString(traitName).location == NSNotFound {
existingTraitsWithNewTrait = fontDescriptor.symbolicTraits.rawValue | traitValue
changedFontDescriptor = fontDescriptor.fontDescriptorWithSymbolicTraits(UIFontDescriptorSymbolicTraits.TraitBold)
} else {
existingTraitsWithNewTrait = fontDescriptor.symbolicTraits.rawValue & ~traitValue
changedFontDescriptor =
fontDescriptor.fontDescriptorWithSymbolicTraits(existingTraitsWithNewTrait) // !!!!
}
В последней строке я получаю сообщение об ошибке Невозможно преобразовать значение типа «UInt32!» к ожидаемому типу аргумента «UIFontDescriptorSymbolicTraits»
Должен ли я конвертировать UInt32 в UIFontDescriptorSymbolicTraits? Другой способ — использовать .rawValue. Но я не знаю, как это сделать. :-(
Любая помощь приветствуется!