On 19/12/2009, at 12:14 AM, Kevin Walzer wrote:

> I am trying add a subview to an NSView programatically, and am having some 
> difficulty.
> 
> Here's my code:
> DNDView *dropview = [[DNDView alloc] init];


This is wrong. The designated initializer for NSView is -initWithFrame:


>  NSView *view;
>  if ([dropview superview] != view) {
>    [view addSubview:dropview positioned:NSWindowBelow relativeTo:nil];
>  }
> 
> NSRect frame = [dropview frame];
> NSRect parentframe = [view frame];
> frame.size.width = parentframe.size.width;
> frame.size.height = parentframe.size.height;
>  [dropview setFrame:frame];
> 
>  [dropview displayRectIgnoringOpacity:[dropview bounds]]
> 
> The *view is supposed to take up the entire window, and my idea is to have 
> the subview do so, as well. However, when I add the subview DNDView (which is 
> supposed to be registered to receive file drags), it does not take up the 
> whole window--it takes up approximately 1/4th of the window.
> 
> How can I get the subview to be the same size as its parent view?

It is the same size, it's just not in the right place, is my guess.

Use the correct initializer and pass it the frame you want up front, then just 
add the subview. There's also no reason to call -displayRectIgnoringOpacity, 
the view will get drawn on the next cycle as normal.

--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:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to