So ändern Sie die Farbe von Textelementen in UITextView in Swift3

Ich habe mir einige bestehende Fragen angeschaut und versucht, den gesamten Code zu implementieren, konnte jedoch keinen Code erfolgreich implementieren. Eigentlich denke ich, ich habe verstanden, wie man die Farben einiger Texte in @ änderUITextView wenn ein text anfänglich gesetzt ist, aber ich verstehe nicht, dass mein text-tview, als er mit der bearbeitung begann, überhaupt nicht richtig zu funktionieren scheint. Im Folgenden ist es mein versuchte Code, der mein gewünschtes Verhalten genau erfüllt;

 func textViewDidBeginEditing(_ textView: UITextView) {

    let main_string = ""
    let getData: [String] = userDefaults.object(forKey: "myData") as! [String]
    print("\(getData)")

    let searchWords = "world"

        let range = (main_string as NSString).range(of: searchWords)

        let attribute = NSMutableAttributedString.init(string: main_string)
        attribute.addAttribute(NSForegroundColorAttributeName, value: UIColor.red , range: range)

        mytextView.attributedText = attribute


}

Ich habe Eingabedaten mit dem Namen @ gespeicherMyData. Ich habe versucht, mit einer for-Schleife alle Elemente aus @ zu entfernegetData und benutze es als einzelne Werte. In der Konsole gibt es jedoch so viele Erklärungen. Ich denke, das ist eine richtige Art zu schreiben, aber mein Mac sagt nooooooo. Wenn ich jedoch ein @ setString Innerhalbmain_string undsearchWords, zum Beispiel, "Das ist meine Frage. Ich möchte, dass die Leute mir von der Welt helfen." in main_string und"Welt" in searchWords wie im Code geschrieben. Dann, nachdem die App geladen wurde, wird in meiner Textansicht das Wort "Welt" perfekt in Rot hervorgehoben, aber nach dem Wort "Welt" ist der gesamte Text in Rot. Ich verstehe nicht, warum ich von diesem unbekannten Bug gefoltert werde.

as ich erreichen möchte, ist

von dem gespeicherten Datum in meinemmyData, Ich möchte nur, dass die gespeicherten Wörter rechtzeitig hervorgehoben werden, wenn Benutzer etwas eingeben. Zum Beispiel, wenn ein Benutzer "Hallo" und "Welt" eingibt. Dann werden sie von @ gespeichemyData und sie werden nur bei der Eingabe hervorgehoben. Wechseln Sie wieder in die normale Farbe, wenn nicht gespeicherte Wörter eingegeben werden.

Ich vermute, mir fehlt eine Erklärung. Wenn Sie etwas wissen müssen, weisen Sie mich bitte darauf hin. Vielen Dank!

Antworten auf die Frage(2)

Ihre Antwort auf die Frage