https://stackoverflow.com/a/26456563/8272698“
我在上面找到了这个答案,不幸的是它是客观的c
但你仍然可以看到他们是如何做到的。
- (void)highlight {
NSRange selectedTextRange = self.textView.selectedRange;
[attributedString addAttribute:NSBackgroundColorAttributeName
value:[UIColor redColor]
range:selectedTextRange];
float sysVer = [[[UIDevice currentDevice] systemVersion] floatValue];
if (sysVer < 8.0) {
// iOS 7 fix
self.textView.scrollEnabled = NO;
self.textView.attributedText = attributedString;
self.textView.scrollEnabled = YES;
} else {
self.textView.attributedText = attributedString;
}
}
基本上他们创建了一个名为highlight的功能。在用户实际突出显示所选部分时,他们正在寻找的功能。 self.textView.selectedRange
当他们获得用户选择的文本范围时。他们给它一个属性并提供颜色。
迅速
let selectedText = textView.selectedRange
创建属性:
let myAttribute = [ NSForegroundColorAttributeName: selectedUIColor]
提供你的属性,
textView.textStorage.addAttributes(myAttribute, range: selectedText)
在发件人调用的操作中使用它。
希望这可以帮助!