NSCell was introduced for performance reasons in NeXTSTEP days on machines with several megabytes of memory, when a full NSView for each table cell was inaccessible extravagance. In iOS, table views have been greatly simplified by using views rather than cells. In OS X 10.7, Apple started moving OS X in one direction, and we finally get there.
NSCell has always been a big problem for OS X, and not least because it uses NSCopyObject() , one of the most annoying NeXT functions ever written . It also provides one text editor ( NSText ), which is shared between all types of text input. If you are not careful, this can lead to confusing errors when the views interfere with each other through this shared object. Separation and duplication between controls and cells have always been a source of confusion among OS X developers.
Once it was necessary, but these days are long gone. In most cases, we no longer need to worry about the "overhead of a full subclass of NSView." In particular, since adding CALayer made them much faster.
Rob napier
source share