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

Is it possible to change selection color in UITextView iOS?

默认

需要

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

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

self.textView.tintColor = .red

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

'

我在上面找到了这个答案,不幸的是它在 objective 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 当他们获得用户选择的文本范围时。他们赋予它一个属性并为其提供颜色。

Swift

let selectedText = textView.selectedRange

创建属性:

let myAttribute = [ NSForegroundColorAttributeName: selectedUIColor]

为其提供您的属性,

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

在发件人调用的操作中使用它。

希望对您有所帮助!