Masalah yang saya alami adalah saya ingin dapat mengubah textColor dari teks tertentu dalam TextView. Saya menggunakan string gabungan, dan hanya ingin string yang saya tambahkan ke teks TextView. Tampaknya yang ingin saya gunakan adalah NSMutableAttributedString
, tetapi saya tidak menemukan sumber daya apa pun tentang cara menggunakan ini di Swift. Apa yang saya miliki sejauh ini adalah seperti ini:
let string = "A \(stringOne) with \(stringTwo)"
var attributedString = NSMutableAttributedString(string: string)
textView.attributedText = attributedString
Dari sini saya tahu saya perlu menemukan rentang kata yang perlu diubah textColornya dan kemudian menambahkannya ke string yang dikaitkan. Yang perlu saya ketahui adalah bagaimana menemukan string yang benar dari atributedString, dan kemudian mengubah textColornya.
Karena saya memiliki peringkat yang terlalu rendah, saya tidak dapat menjawab pertanyaan saya sendiri, tetapi inilah jawaban yang saya temukan
Saya menemukan jawaban saya sendiri dengan menerjemahkan dari menerjemahkan beberapa kode dari
Ubah atribut substring di NSAttributedString
Berikut adalah contoh implementasi di Swift:
let string = "A \(stringOne) and \(stringTwo)"
var attributedString = NSMutableAttributedString(string:string)
let stringOneRegex = NSRegularExpression(pattern: nameString, options: nil, error: nil)
let stringOneMatches = stringOneRegex.matchesInString(longString, options: nil, range: NSMakeRange(0, attributedString.length))
for stringOneMatch in stringOneMatches {
let wordRange = stringOneMatch.rangeAtIndex(0)
attributedString.addAttribute(NSForegroundColorAttributeName, value: UIColor.nameColor(), range: wordRange)
}
textView.attributedText = attributedString
Karena saya ingin mengubah textColor dari beberapa Strings, saya akan membuat fungsi pembantu untuk menangani ini, tetapi ini berfungsi untuk mengubah textColor.