Re: Removing/Adding views in drawRect:
Re: Removing/Adding views in drawRect:
- Subject: Re: Removing/Adding views in drawRect:
- From: Andrew Merenbach <email@hidden>
- Date: Wed, 30 Aug 2006 21:58:57 -0700
Hi, Mike. In regard to (2), you may wish to do something like (in
accordance with Uli's suggestion) in the class that handles the
adding and removing of subviews:
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(addOrRemoveSubviewsDuringResize:)
name:NSWindowDidResizeNotification object:myWindow];
This will cause -addOrRemoveSubviewsDuringResize: to be called
whenever the pixel dimensions of myWindow change. Change the
observer if you need a different object to handle the adding or
removing of subviews.
Cheers,
Andrew
On Aug 30, 2006, at 1:56 PM, Uli Kusterer wrote:
Am 30.08.2006 um 20:40 schrieb Mike R. Manzano:
(1) Is it prudent to add or remove subviews in drawRect:?
No. Moving views can cause a view to be invalidated, which would
cause drawRect: to be called again. If you search the list archives
you'll se epostings from lots of people who did it anyway and got
hilarious endless loops, dropped updates and other odd behaviour.
If not,
(2) Is it prudent to add or remove views somewhere else during a
window live resize?
I think there's a notification sent when auto-resizing happens.
Alternatively, you could just override that method (don't remember
the name, but a quick read of NSView.h should make it obvious)
that's called when a superview is resized and asked to resize its
subviews. That should be a safe place to show/hide subviews before
calling through to super.
Cheers,
-- M. Uli Kusterer
http://www.zathras.de
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Cocoa-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
40ucla.edu
This email sent to email@hidden
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Cocoa-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden