You can zoom in using [NSImageView setImageScaling:NSImageScaleProportionallyUpOrDown] . Have you had a problem with this? You can also access the cell for any NSControl using -cell .
Regarding the separation of cells from controls (views), this is the retention from days of much less powerful computers (some NeXT computers had only 8 MB of memory). The cells provide a lighter weight object that does not require some of the full view overhead. This is important in cases where many elements can exist, for example, in a matrix or table. Cells are designed to make copying and reuse easier, like UITableViewCell . Like UITableViewCell , the same NSCell can be reused to draw different content. Cells also share some singletones. For example, most cells typically use only one field editor ( NSTextView ). It simply moves as needed when the user selects various text fields for editing.
In a world where the first iPhone had 10x, NeXT and desktop computers typically have 1000x memory, some of the options in NSCell don't make much sense. Starting with 10.7, OS X has moved some things away from NSCell . NSTableView now supports NSView cells as well as NSCell cells. When iPhoneOS was released, UITableView started working with views from the very beginning. (Of course, the iPhone table view is negligible compared to OS X table view, so it was an easier choice for several reasons than just the available memory.)
source share