TextView с разными цветами, Swift - PullRequest
0 голосов
/ 06 августа 2020

У меня есть textView и String.

Я хотел бы добавить эту строку с некоторым атрибутом (красный цвет и жирный шрифт), но я также хотел бы сохранить черный цвет шрифта textView по умолчанию, если введите пользователя.

Я пытаюсь добиться этого с помощью NSAttributedString, но, поскольку я не знаю текста перед этой строкой, я не могу найти способ достичь своей цели. (Я не собираюсь публиковать какой-либо код, поскольку я просто пытаюсь не работать с NSAttributedString)

Есть ли способ сделать это?

1 Ответ

0 голосов
/ 06 августа 2020
        let rangeMain = (textView!.text! as NSString).range(of: (textView!.text! as NSString) as String)
        let rangeGreen = (textView!.text! as NSString).range(of: "a")
        let rangeBlue = (textView!.text! as NSString).range(of: "b")
        let rangeGray = (textView!.text! as NSString).range(of: "c")
        
        let attributedString = NSMutableAttributedString(string: textView!.self.text!)
        attributedString.addAttribute(NSAttributedString.Key.foregroundColor, value: UIColor.black, range: rangeMain)
        attributedString.addAttribute(NSAttributedString.Key.foregroundColor, value: UIColor.blue, range: rangeBlue)
        attributedString.addAttribute(NSAttributedString.Key.foregroundColor, value: UIColor.green, range: rangeGreen)
        attributedString.addAttribute(NSAttributedString.Key.foregroundColor, value: UIColor.gray, range: rangeGray)
        
        textView!.attributedText = attributedString

Вы пробовали что-то подобное?

Пришлось изменить указанный c текст (символы: a, b, c, которые вы можете переименовать, чтобы они были) .. .

...