TextEdit and styles

I’m not convinced I’m doing anything more than sounding off here, but I can’t be the only one to find the way TextEdit handles styles weird, unfriendly and a complete pain in the arse.

To change a style you have to recreate it exactly, remember its exact name, choose ‘Other’ from the list, add a new style (not forgetting to tick the ‘include paragraph’ and ‘include character’ styles boxes. Uh? Can you have a style without either of those?), confirm you want to delete the old one, and then OK. And it doesn’t update the existing text in those styles. And you can’t delete old ones, can you? Or have I missed something? And then there’s not being able to assign keystrokes to them? Or have I missed that too?

For a company which usually gets usability so right, how did Apple get TextEdit’s styles so wrong?

Well, if you’d like you could do a search on the forums and discover vast quantities o’ vitriol on this subject.

Not to defend them—they really do need to fix this—but TextEdit is aimed at your standard person; not a writer. Standard persons might use the styles once or twice when they’ve decided to gussy up five recipes. Most of the time they’re content with bold (in raging pink).


Apple’s default Cocoa styles are indeed a crime.

The fact that they inflict them on anyone who uses the default Cocoa text views (not just TextEdit) is even worse.

Awful, awful, awful.

You can, however, absolutely assign keyboard shortcuts to styles in the ruler – as long as the ruler is visible. Just go to “Keyboard and Mouse” in System Preferences, and add some to the relevant application (or globally). When it asks you which menu item you want a shortcut for, you need to specify the name of your style exactly, which means it needs to be a unique string (i.e. not the name of another menu item in the app in question).

Remember, also, that every new Mac comes with a trial of iWork installed. I suspect styles are so overlooked in the basic text system simply because they want you to use Pages for that sort of writing instead.

The built-in text system’s implementation of bullet points and styles is also dreadful (and buggy). They were introduced in the text system when Tiger was released. I don’t want to be too cynical, but back then, Pages hadn’t been released. It’s notable that no work has been done to fix these features for Leopard, a couple of years later - surely that couldn’t be because Pages does these things? I hope not…

I suspect that Cocoa styles are near the bottom of Apple’s priority list. Given the slap-dash UI, I wouldn’t be surprised if they were thrown together quickly by people who didn’t really care (or believe anyone would use them).

Apple has probably continued to overlook them because there’s not much pressure to fix the problem. Most applications that need robust styling roll their own system (Nisus, etc.), and indie developers who use Cocoa probably don’t use their support tickets to Apple requesting styling upgrades.

Perhaps now is the time for this forum to collectively pen a “Dear Steve” letter letting Mr. Jobs know how much the Mac OS X text engine sucks (a poetic term) and how it hinders such creative and innovative tools as Scrivener.

Here goes:

Dear Steve,

Would it really kill Apple to spare one or two good coders for a little while to fix up the basic OS X text system?

Probably. You see, if they did that then all the little preppies would have to wait for the next iPod. then folks would stop thinking of Apple as a cool consumer driven company and more like an actual computer company.

Yes there is a bit of sarcasm on my part. I actually had to explain to some little sh** that my busted MBP17 that I had actually SCHEDULED an appointment for was more important to a “genius” than his iPod and that he needed to get back in line and wait his turn. The “kids” (he was 22) mother decided to complain to the manager who was in a pretty tough spot. Here is a guy with a $3K laptop and a support contract with a scheduled appointment on one side and a twerp with mommy and a $130 nano on the other. Problem is there were ~80 other twerps looking at nano’s and I was the only MBP there. Who do you think won?

It wasn’t me. Luckily Tommy (the only one that I would call a genius at our store) offered me some personal assistance with a particularly annoying hardware issue I have been having for several months.

So to your point, iPods, iTV, and every other “mass consumer” device that Apple makes is more important than an OS “give me.”

Funny thing is Apple is STILL better than the other options.

SO I cranked up SCR and went to my preferences for full screen mode and changed my font to Arial Black Italic 24 Point in Hot Raging Pink.

After 4 sentences my eyes began to bleed, my bowls began to growl, and I could have swore I started seeing MySPace ads start to appear on the screen with fallling gif hearts, slideshows of people I don’t know and music that was horrid to my ears.

In terms like the Burger King Commercial.

(changed my preferences back to something more appealing)

On Topic. Apple has always seemed to lack in robust support for Text. Old OS9 days Simple Text seemed lackluster. The TextEdit in OSX seems lackluster as well.

THe whole OSX text engine seems to built only to the part were it can read basic “read me’s” and that is about it. They have set the internal text mechanism on a status that seems “good enough to work” but without ever improvement. I am amazed they actually worked on the internal Dictionary for 10.5

Wow. Getting a link to Wiki is > basic style function in Text system?

[shaking head] Maybe apple should distribute their whole text integration/system to the Open-Source community and have them develop something more feature rich.

$20 dollars says that if the iPhone/iPod get a text editor maybe then a developer will be reposted to actually fix the whole text problem in OSX.

Until then we are not going paperless! We are going textless!

What can you do?

I can live with TextEdit’s weaknesses as a text editor - as someone said, nobody does any serious formatting/layout in it. I get frustrated when TextEdit inflicts its weaknesses on other apps that use it though, like Scriv (or come to that Journl, Jers, etc.). Writing a whole new system is prohibitively high cost for a small developer, and for a lot of users, text inputting is basically what they do on their computers.

If Apple fixed the text engine, then they may find themselves overrun with competitors to iWork, so I wouldn’t hold my breath.

Would be nice if someone like Nisus would sell their text engine as a third party framework, but again the same problem; they’d just generate competition for themselves.

Hadn’t thought of that, I must admit.

The functionality is fine - it’s the interface that sucks.

Nisus actually use the OS X text engine. But because theirs is a dedicated word processor, most of their work has gone into subclassing and adapting that text engine so that it works as a full word processor. Martin, one of the Nisus developers, is probably as knowledgeable about the OS X text engine as some of the Apple developers, such is the extent of their customisation.

The trouble for programs such as Scrivener is that making basic changes to the ruler are more difficult than they should be, and that we are stuck with a poor implementation of tables and lists and don’t have the time or resources to reimplement them completely.

Scrivener actually customises the OS X text engine a lot. There is more I would love to be able to do (collapsible footnotes/annotations would be at the top of my list), but there is just no simple way of doing them (and by simple, I don’t mean “quick”; I mean without risking breaking everything).


I don’t know if this would work.

But what if a number of the indie developers whose apps rely on Cocoa’s ruler for a lot of their rich styling got together and cooperatively developed some sub-classes or a framework or something to improve the ruler UI and functionality? They could either share the framework amongst contributors or open-source it to help everyone.

On the one hand some people might not want to do this because it would mean a fair amount of effort dedicated to something that doesn’t immediately benefit their app(s). But on the other, it would allow a bunch of indies to implement features that they’d never be able to do on their own.

Something to think about, at least. The implementation could be a major pain (since you’d need someone to manage the project and finishing it would depend a lot on everybody holding up their end of the bargain), but if you could pull it off it would be way cool.

If you could have it dispense beer from a collapsable footnote you would be a millionaire in about 3 seconds…

1.5 seconds if it dispenses Guiness

Or 1 second if it’s scriptable.