Шрифт NSAttributedString сбрасывается после установки другого выбора, почему? - PullRequest
0 голосов
/ 06 мая 2018

Я пытаюсь сделать выделенный текст в UITextview полужирным или курсивом , и это работает для меня, но, скажем, я получил строку "один два", и я делаю " один «жирный», поэтому он будет выглядеть так: « один два». Теперь, если я хочу сделать «два» жирным шрифтом или курсивом, это произойдет: «один два ». Есть ли объяснение, почему это происходит, и есть ли исправление для этого?

let main_string = textView2.text
let string_to_change = selectedTextWBU
let range = (main_string! as NSString).range(of: string_to_change)
let attributedString = NSMutableAttributedString(string: main_string!, attributes: [kCTFontAttributeName as NSAttributedStringKey : font])

if selectedTextWBU == ""{

}else{

    //highlight
    if sender.tag == 1{
        print("SELECTEDTEXTWBU ==  \(selectedTextWBU)")
        textView2.attributedText = attributedString

        //italic
    }else if sender.tag == 2{
        attributedString.addAttribute(kCTFontAttributeName as 
            NSAttributedStringKey, value: italicsFont, range: range)          
        textView2.attributedText = attributedString

        //bold
    }else if sender.tag == 3{
        attributedString.addAttribute(kCTFontAttributeName as NSAttributedStringKey, value: boldFont, range: range)
        textView2.attributedText = attributedString

    }

}
...