On Thursday, May 01, 2008, at 01:14PM, "John Stiles" <[EMAIL PROTECTED]> wrote:
>An NSView doesn't have an associated cell, so "size to fit" doesn't 
>really have a meaningful answer. Size-to-fit works by asking the cell 
>what size it should be.
>
>For a box, you could just enumerate the subviews and get the union of 
>all the subview frames.
> 
>Randall Meadows wrote:
>> On May 1, 2008, at 11:45 AM, Martin wrote:
>>> What about NSControl's sizeToFit method?
>>
>> I guess I didn't mean "controls" exclusively; I should have stuck with 
>> "views", as (at least) one of the things I need to create is an NSBox 
>> that contains multiple controls.  Which is why I was looking in NSView 
>> for the right call.  But yeah, that'll work for the majority of things 
>> I need to create.
>>
>> And now that I think about it....I don't really need (nor want) for 
>> the box to have a border, so perhaps I can manipulate it just 
>> encompass the sized-to-fit controls in it.  But still, is there no 
>> such beast for NSViews?
>>
>> While I'm at it...is there no way to create an NSMatrix of 
>> NSPopupButtons?  I can't seem to manage it in IB, and I'm not yet at 
>> the point to try it in my code.
>>
>>> Martin
>>>
>>> On May 1, 2008, at 7:39 PM, Randall Meadows wrote:
>>>
>>>> I am creating a bunch of controls (at least NSTextfield, 
>>>> NSPopupButton, NSSlider, and perhaps others) programmatically (that 
>>>> will eventually be shown in an NSTableView), and would like to apply 
>>>> the "Size To Fit" feature that IB provides.  However, there doesn't 
>>>> seem to be any API that does that.
>>>>
>>>> Does IB simply brute-force the resizing for every type of view, or 
>>>> am I missing the appropriate call in the NSView API?

Just to throw this out there to...

IB's size-to-fit function is still very much a mystery.  For all my IB palettes 
(IB 2.x) and plug-ins (IB 3.x), I added a custom mySizeToFit method for most of 
my controls.  Then, the inspector had a button that would invoke that method.  
As much as possible, it would rely on framework routines such as cellSize to 
return an appropriate size for each cell.

Multi-cell controls would of course need to do a proper union and optionally 
space things out too.  At the end of the method, I would then do a setFrame (or 
was that setSize?)

Anyhow, I found it really weird that IB's size to fit menu never would invoke 
sizeToFit in code.  breakpoints and logging lines never were hit.  There's 
still a bit of IB magic going on where I think IB will only do work for 
specific classes.

The other nice thing of your own sizeToFit methods is that you could then add 
it to your view classes too.  I would recommend perhaps a protocol you could 
mix in to all your views/controls that needed such an API.  And, if you're 
doing IB palettes/plug-ins, you'd have something you could tap into as well.

--
Rick Sharp
Instant Interactive(tm)


_______________________________________________

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 [EMAIL PROTECTED]

Reply via email to