NSAttributedString Farbe ändern, am Ende von string

Dies muss eine einfache Sache zu tun, aber ich kann nicht es herausfinden.

Ich habe eine NSMutableAttributedString hat, zum Beispiel, "Dies ist ein test" in ihm. Ich will Farbe das Wort "test" blau, was ich mit diesem:

NSMutableAttributedString *coloredText = [[NSMutableAttributedString alloc] initWithString:@"This is a test"];

[coloredText addAttribute:NSForegroundColorAttributeName value:[UIColor blueColor] range:NSMakeRange(10,4)];

Das funktioniert gut. Aber ich will jetzt legen Sie die Textfarbe wieder auf schwarz für alles typisiert nach "test".

Wenn ich das Tue:

[coloredText addAttribute:NSForegroundColorAttributeName value:[UIColor blackColor] range:NSMakeRange(coloredText.string.length, 1)];

Bekomme ich eine objectAtIndex:effectiveRange: out of bounds error. Vermutlich weil das Angebot erstreckt sich über die Länge der Zeichenfolge.

Wenn ich das Tue:

[coloredText addAttribute:NSForegroundColorAttributeName value:[UIColor blackColor] range:NSMakeRange(coloredText.string.length, 0)];

Der Fehler geht Weg, aber die Eingabe nach dem Wort "test" bleibt blau.

Wie ich die aktuelle Farbe an der Einfügemarke, wenn es am anderen Ende der Schnur??

Cheers für jede Eingabe.

  • Sie können nicht geben Sie in einer NSAttributedString. Wenn Sie die Nutzung eines UITextField oder UITextView sollten Sie aktualisieren Sie Ihre Frage richtig.
  • Danke für den Kommentar, aber es scheint ein bisschen punctilious zu tun gegeben, dass, wie Sie sagten, Sie können nicht geben Sie in einem NSAttributedString, und dass die Steuerung präsentiert sich der string ist irrelevant für die Frage.
InformationsquelleAutor Raconteur | 2013-10-01
Schreibe einen Kommentar