i have a number of custom buttons in my app, all derived from NSButton. some do some simple animation (no Core Animation) which i handle in drawRect determined by state. i connect actions in ib, as usual, but with one difference: i handle mouseDown where i change state (open/closed, on/off, etc.), setToolTip & send
[self setNeedsDisplay:YES]; [self sendAction:[self action] to:[self target]]; mouseDown, of course, may be defined once in a base from which you derive—thus, you need only override drawRect in derived classes. hope this helps, edward On Apr 6, 2014, at 3:25 AM, Graham Cox <graham....@bigpond.com> wrote: > I want to make some custom buttons to replace the standard checkbox, and > maybe others. I also want to make use of Core Animation layers to animate > aspects of these. > > Looking at the current model of NSControl + NSCell subclasses (in this case > NSButton + NSButtonCell), they bring along much baggage. That in itself isn't > a problem as such, but the whole design seems to be not such a great fit for > a CA layer approach - the cells are supposed to draw when told to by the > hosting control, and fitting the layer model into this seems like hard work - > at what point does the cell add its layers to the view, for example? Both the > control and the cell will need subclassing so that I can make the control a > layer-hosting view not a layer-backed one, and there's no telling whether > that's going to interfere with anything it does already. > > The alternative is just to subclass NSView and bypass the whole NSControl > hierarchy. For the things I want to do, which are simple, this is awfully > tempting. It has one obvious downside and that is IB support for hooking up > actions, which appears to rely on the object being an NSControl. > > What's the best advice here? Have others managed to make layer-based controls > and what's the best approach? I've created custom NSCell subclasses in the > past, but this is the first time I want to make them animatable using layers. > I don't think I want to use these controls in matrixes or tables, so there's > nothing that absolutely compels me to follow the control + cell model. > > --Graham > > > > _______________________________________________ > > 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: > https://lists.apple.com/mailman/options/cocoa-dev/etaffel%40me.com > > This email sent to etaf...@me.com _______________________________________________ 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: https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com