2016-07-15 5 views
7

Ich habe eine bearbeitbare UITextView, die mit einem attributierten String geladen wird. Dieser attributierte String wird mit benutzerdefinierten Attributen geladen, die von der App festgelegt wurden. Aus diesem Grund füge ich diese benutzerdefinierten Attribute immer dem typingAttributes des textView hinzu.Benutzerdefinierte Attribute beim Ersetzen von attributiertem Text in UITextView beibehalten

Immer wenn ich Text schreibe funktioniert es wie erwartet, der Text, der hinzugefügt wird, hat die benutzerdefinierten Attribute festgelegt, aber jedes Mal, wenn ich die Vorhersagevorschläge zum Ersetzen eines Wortes verwenden, wird das ganze Wort ohne benutzerdefinierte Attribute festgelegt.

Soweit ich weiß, werden die typingAttributes jedes Mal, wenn der attributierte Text programmgesteuert festgelegt wird, automatisch gelöscht. So scheint es, dass wenn ein Vorhersagevorschlag ausgewählt wird, der Text programmgesteuert gesetzt wird und aus diesem Grund alle meine benutzerdefinierten Attribute verloren gehen.

Gibt es einen Weg um dies zu umgehen?

Antwort

0

Ich hatte das gleiche Problem, und nachdem ich in diese weiter untersucht habe, habe ich festgestellt, dass es keine Möglichkeit gibt, dies ohne private API zu tun. Sie können dieses Problem jedoch in einigen Fällen umgehen, indem Sie replaceCharactersInRange:withAttributedString: in der Textansicht textStorage überschreiben und Ihre benutzerdefinierten Attribute dort wieder einfügen.

Verwandte Themen