Ich versuche, Absätze von hervorgehoben in einem NSTextView anzuzeigen. Im Moment mache ich das, indem ich einen NSAttributedString mit einer Hintergrundfarbe erstelle. Hier einige vereinfachte Code:NSAttributedString Highlight/Hintergrundfarbe zeigt zwischen den Zeilen (hässlich)
NSDictionary *attributes = @{NSBackgroundColorAttributeName:NSColor.greenColor};
NSAttributedString *attrString = [[NSAttributedString alloc] initWithString:@"Here is a single line of text with single spacing" attributes:attributes];
[textView.textStorage setAttributedString:attrString];
Dieser Ansatz grundsätzlich funktioniert, dass es produziert markierten Text.
Leider, wenn mehrere Zeilen vorhanden sind, erstreckt sich der Höhepunkt den vertikalen Raum zwischen die Linien zusätzlich zu den Linien selbst, in Hässlichkeit zur Folge hat.
Kennt jemand eine Möglichkeit, diese Art zu tun, in Cocoa hervorzuheben? Das Bild unten ist im Grunde, was ich suche (ignorieren Sie die Schatten auf den weißen Kästen):
Ich würde bereit sein, Coretext, HTML, oder was auch immer notwendig ist, um die Dinge schöner aussehen .
Haben Sie das jemals gelöst, habe ich genau das gleiche Problem – user499846
Ich habe das nicht wirklich herausgefunden, aber ich habe herausgefunden, wie man die Auswahl rect um den Text mindestens zentrieren, so dass es nicht alles über oder ist unten. Es beinhaltet die Berechnung der '[paragraphStyle setLineSpacing: xx]' und '[paragraphStyle setLineHeightMultiple: xx]' so, dass sie gleich sind. Auch dies löst das eigentliche Problem nicht, macht es nur erträglicher. – stevel