Patrząc na dokumentacji NSLayoutManager
, a konkretnie sposobu drawUnderlineForGlyphRange:underlineType:baselineOffset:lineFragmentRect:lineFragmentGlyphRange:containerOrigin:, zauważyłem następujące (kopalnia nacisk):Jak zdefiniować niestandardowe NSUnderlineStyle
underlineVal
Styl podkreślając rysować. Ta wartość jest maską pochodzącą od wartości dlaNSUnderlineStyleAttributeName
- na przykład (NSUnderlinePatternDash
|NSUnderlineStyleThick
). Podklasy mogą definiować niestandardowe style podkreślania.
Moje pytanie brzmi: jak dokładnie to ma być zrobione?
NSUnderlineStyle
to wyliczenie, którego nie można przedłużyć ani przesłonić. Można oczywiście zapewnić losową surowego Int
wartość atrybutu, nieobjętych przypadkach ENUM:
self.addAttribute(NSUnderlineStyleAttributeName, value: 100022, range: lastUpdatedWordRange)
które wygłosi „nieważny”, ale użyteczny underlineType
do układu Manger:
Ale to prawie nie czuje się bezpiecznie i jest zdecydowanie nieeleganckie.
Nie znalazłem żadnych przykładów online ani dalszych wskazówek w dokumentacji Apple na temat wyglądu mitycznych niestandardowych typów podkreślenia. Chciałbym wiedzieć, czy brakuje mi czegoś oczywistego.
NSUnderlineStyle wydaje się słabo t eam gracza. Jest źle udokumentowany, a w Swift nadal nie został przekonwertowany na zestaw opcji. Czytając flagi w danym stylu, wydaje się niewiarygodny (albo robię coś źle). Chciałbym móc pomóc, ale wciąż szukam rozwiązania ... –