On Wed, Jan 7, 2009 at 7:39 PM, David <enki1...@gmail.com> wrote: > I must complain again. Cocoa does not have a clean well designed object > model. It seems haphazard. Someone needed a function here, but not there. > Apple doesn't go back and look at making general purpose classes and > methods. > Some of the cell classes seem very specialized. I had assumed that > NSTextFieldCell could display an icon. Frequently there are outline views of > files which display icons and names, yet there is no simple class which > implements this functionality. Instead everyone needs to write their own > with inconsistent behavior. > > I've been able to get NSBrowserCell to work somewhat by setting > setLeaf:TRUE. However, now I get the icon smashed up right next to the > disclosure triangle. There again, there are no basic controls to add some > spacing. Argh. > > Thanks for the responses. I guess I'll have to bail on the NSBrowserCell and > write my own NSCell subclass unless I can come up with a way to add some > spacing.
Cocoa can't very well do *everything* for you. If it did, we'd all be out of a job, for one.... Personally I find that Cocoa provides plenty of facilities and building blocks for more. Just because it doesn't do what you want in this one particular case certainly doesn't make it generally deficient. However in this case Cocoa is able to do what you want, using built-in features and nothing more. Simply create an NSAttributedString containing your image and your text, and using the available attributes to control horizontal and vertical spacing. A plain NSTextFieldCell can display an NSAttributedString with no customization. Mike _______________________________________________ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com