Ich habe gerade meinen Code in swift 3 von swift 2.3 geändert. Der folgende Code funktioniert gut mit swift 2.3 aber es gibt keinen Effekt mit swift 3.Swift 3 Farbe des ausgewählten Textes in UITextView ändern
Ich möchte einen benutzerdefinierten Texteditor entwickeln. Und lassen Sie den Benutzer Text auswählen und ändern Sie die Farbe. Dafür benutze ich diesen Code.
let selectedRange = textView.selectedRange
let currentAttr = textView.textStorage.attributes(at: selectedRange.location, effectiveRange: nil)
var attrName = NSForegroundColorAttributeName
if !isForeGround{
attrName = NSBackgroundColorAttributeName
}
if currentAttr[attrName] == nil || currentAttr[attrName] as! UIColor != selectedUIColor{
let dict = [attrName:selectedUIColor]
let currentFont = currentAttr[NSFontAttributeName]
let fontDescriptor = (currentFont! as AnyObject).fontDescriptor
let updatedFont = UIFont(descriptor: fontDescriptor!, size: 0.0)
let dict2 = [NSFontAttributeName: updatedFont]
textView.textStorage.beginEditing()
if currentAttr.count>0{
textView.textStorage.addAttributes(dict, range: selectedRange)
}else{
textView.textStorage.setAttributes(dict, range: selectedRange)
}
textView.textStorage.addAttributes(dict2, range: selectedRange)
textView.textStorage.endEditing()
}
Erfolgreich ausgeführt, aber die Textfarbe wird nicht beeinflusst.