Re: Custom control with 4 vertical sliders
Re: Custom control with 4 vertical sliders
- Subject: Re: Custom control with 4 vertical sliders
- From: Graham Cox <email@hidden>
- Date: Sat, 16 Feb 2013 11:11:37 +1100
I sometimes find that trying to subclass existing classes such as NSCell is more trouble that it's worth, unless you really need your custom cell to be used anywhere a cell can be used, e.g. buttons, matrices, list rows, etc.
If you just want a particular custom control that doesn't need that degree of reusability, subclassing NSView or NSControl is always a lot easier. In this case, if NSSlider isn't suitable, just make a custom view for your custom slider, then add it four times to another custom view that handles the "set" of sliders as needed.
--Graham
On 16/02/2013, at 7:30 AM, Steve Mills <email@hidden> wrote:
> On Feb 15, 2013, at 13:35:38, Steve Mills <email@hidden> wrote:
>
>> What's the easiest way to create a custom control that contains a matrix of 4 custom vertical sliders, like a mini graphic EQ? The sliders will not draw the slot, only the knob. First I started with a subclass of NSMatrix and a subclass of NSCell. No matter what I've tried, the cells always end up drawing at the wrong size, as if they were the cell for a simple text matrix, about 100 pixels wide and the height of a regular size text label. I create it thusly:
>>
>> MyMatrix* blView = [[MyMatrix alloc] initWithFrame:NSMakeRect(100, 100, 200, 80) mode:NSTrackModeMatrix cellClass:[MyCell class] numberOfRows:1 numberOfColumns:4];
>>
>> I've tried overriding all sorts of methods in the 2 subclasses; cellSize, cellFrameAtRow:column, even returning a cellSize of 10000,10000 as suggested in the docs for cells that aren't text or image cells.
>
>
> Addendum:
>
> If any of the sliders is dragged past the top of bottom of the containing control, the containing control's bounds will be expanded live in that direction, thereby keeping the mouse within the containing control. I'm starting to think that doing with this a matrix of cells won't be the best way to do this, but rather just create a custom control and tracks the 4 "sliders" internally. Thoughts?
_______________________________________________
Cocoa-dev mailing list (email@hidden)
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:
This email sent to email@hidden