是否可以在UITextView iOS中更改选择颜色?

时间:2019-02-21 13:56:53

标签: ios swift cocoa-touch uitextview

默认

enter image description here

所需

enter image description here

在UITextField上更改tintColor会更改选择颜色,但是在UITextView中找不到用于更改它的任何文档。

2 个答案:

答案 0 :(得分:1)

是的,您可以使用tintColor的{​​{1}}属性更改文本选择颜色。 使用此代码可获得预期的输出。

UITextView

此外,您可以从情节提要中执行此操作,请参见下图。

enter image description here enter image description here

答案 1 :(得分:0)

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;
    }
}

基本上,他们创建了一个称为高亮的功能。 在该功能中,他们正在寻找用户实际突出显示所选部分的时间。 self.textView.selectedRange当他们获得文本范围时,用户已选择。他们给它一个属性,并为其提供颜色。

迅速

let selectedText = textView.selectedRange

创建属性:

let myAttribute = [ NSForegroundColorAttributeName: selectedUIColor]

为其提供属性

textView.textStorage.addAttributes(myAttribute, range: selectedText)

在发件人调用的操作中使用此功能。

希望这会有所帮助!