Setting the NSTextView Line Height in a Beautiful Way

In the original post about a cheap way to set the line height in a text view to, say, 150%, the result kind of worked but didn't look that cool. One issue is that the extra line spacing was exclusively added at the bottom. With the following solution, you'll get a proper line height with tastefully aligned insertion point and baseline and all.

Continue reading …

Setting the Line Height of a NSTextView

NSTextView (and UITextView for that matter) have a defaultParagraphStyle attribute where you can set the text's line height. That works swell – if you display text statically. Once the user can enter something, you can run into trouble: It's your usual RTF nightmare. I know this behavior from rich text editors; and I developed my own way to make sense of it in the process. It might not be what is really going on, but it's a good heuristic: it's just like the opposite of making a word bold, placing your cursor after that word, type, and get more bold text. There, the "bold text" information is carried on. The cursor inherits this info from the character left to it. But if you start at the beginning of a line, your cursor will not inherit what comes afterward. And since there is nothing before its position, it starts with empty info, and thus empty line height settings. Since the whole paragraph is affected by this, the latest change wins. Beginning to type at the beginning of a paragraph with empty paragraph settings removes them from what comes afterwards.

Continue reading …