|This article does not cite any references or sources. (December 2009)|
These APIs were originally designed to provide a common text handling system to support text entry fields in dialog boxes and other simple text editing within the Macintosh GUI. Over time, they were extended to provide more advanced text editing features, but its limited original scope led to fundamental limitations. Apple repeatedly stated that TextEdit was not a word processor, and therefore providing rich text editing was always left to third-party developers.
Basic limitations of TextEdit include:
- only provides support for 8-bit character sets
- 16-bit internal indexing limits text to a maximum length of about 32,000 characters
- use of QuickDraw for glyph rendering limited the maximum height of a text block to 32,767 pixels - this could be encountered well before the character limit was hit with larger font sizes.
The first incarnation of TextEdit provided support for only a single style of text, which was applied to all text in the block. This was more than adequate for its intended use, supporting text entry fields. Later, support was added for styled text so that TextEdit could be used for more complex text editing tasks, such as text editing areas in web browsers, etc.
TextEdit remains part of the Carbon API on Mac OS X, but has been superseded by numerous other solutions including ATSUI in Carbon, the third party WASTE text engine, as well as NSText and related classes within Cocoa.