setAutoresizingMask from code

  • Hi,
    I have created one controller for my window which is a subclass of
    NSWindowController

    and added one button to the window and added the following code to the
    Action event.

    NSBox *newBox = [[NSBox alloc] initWithFrame:NSMakeRect(10.0f, 10.0f, 200.0f,
    200.0f)];

    [newBox setBoxType:NSBoxPrimary];

    [myBox setAutoresizingMask: NSViewHeightSizable | NSViewWidthSizable ];

    [[[self window] contentView] addSubview:newBox];

    this will add the box to the content view of the window. but not he
    autoresizing mask.

    but if I set the auto resizing from the IB for any control on the Window say
    for this button then the above code works fine.

    How to set the resize state  on from code.

    Regards
    Tom.
  • sorry , I edited the original name myBox to newBox  before sending the mail
    and missed one .....
    It has the same behavior with the correction.

    Tom.
  • On Feb 2, 2008, at 03:27, Aby wrote:

    > Hi,
    > I have created one controller for my window which is a subclass of
    > NSWindowController
    >
    > and added one button to the window and added the following code to the
    > Action event.
    >
    > NSBox *newBox = [[NSBox alloc] initWithFrame:NSMakeRect(10.0f,
    > 10.0f, 200.0f,
    > 200.0f)];
    >
    > [newBox setBoxType:NSBoxPrimary];
    >
    >
    > [myBox setAutoresizingMask: NSViewHeightSizable |
    > NSViewWidthSizable ];
    >
    > [[[self window] contentView] addSubview:newBox];
    >
    > this will add the box to the content view of the window. but not he
    > autoresizing mask.
    >
    > but if I set the auto resizing from the IB for any control on the
    > Window say
    > for this button then the above code works fine.
    >
    > How to set the resize state  on from code.

    I think you're also going to need:

    [[newBox superview] setAutoresizesSubviews: YES];

    IIRC, IB does this for you for free, if you put an auto-resizable
    subview into a view.