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

问题描述 投票:0回答:2

默认

enter image description here

期望

enter image description here

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

ios swift cocoa-touch uitextview
2个回答
1
投票

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

self.textView.tintColor = .red

此外,您可以从故事板中执行此操作,请参见下图。

enter image description here enter image description here


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

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

迅速

let selectedText = textView.selectedRange

创建属性:

let myAttribute = [ NSForegroundColorAttributeName: selectedUIColor]

提供你的属性,

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

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

希望这可以帮助!

© www.soinside.com 2019 - 2024. All rights reserved.