Próbuję ładnie wyświetlić akapity podświetlone w NSTextView. Teraz robię to, tworząc NSAttributedString z kolorem tła. Oto uproszczony kod:NSAttributedString highlight/kolor tła pokazuje między wierszami (brzydki)
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];
To podejście zasadniczo działa, ponieważ tworzy wyróżniony tekst.
Niestety, gdy istnieje wiele linii, punktem kulminacyjnym obejmuje pionową przestrzeń między linie oprócz samych liniach, co skutkuje brzydotą.
Czy ktoś wie o sposób zrobić tego rodzaju podkreślając w kakao? Poniższy obraz jest w zasadzie to, co szukam (zignorować cień na białe pola):
byłbym skłonny do korzystania CoreText, HTML lub, co jest konieczne, aby wszystko wygląda ładniej .
Czy kiedykolwiek rozwiązałeś to, mam dokładnie ten sam problem? – user499846
Nie wymyśliłem tego tak naprawdę, ale wymyśliłem, jak przynajmniej wyśrodkować zaznaczenie rect wokół tekstu, tak aby nie było to wszystko powyżej lub poniżej. Polega na obliczeniu '[paragraphStyle setLineSpacing: xx]' i '[paragraphStyle setLineHeightMultiple: xx]' tak, aby były takie same. Ponownie, nie rozwiązuje to problemu, tylko sprawia, że jest on bardziej znośny. – stevel