On 11 Nov 06, at 16:46, E. Wing wrote:
> I have a custom view which may have animation. I use an NSTimer to
> fire periodically and I check to see if anything is animating in my
> view. If so, I call setNeedsDisplay:YES.
>
> If I minimize or hide the application, I notice that drawRect: stops
> being called by the system (which I consider good). But if my
> view/window is completely obscured by another window (say another
> window from my app or from another application such as Safari) , I
> noticed that drawRect: is still being called.
As far as a solution goes? You could check to see if the window
containing the view is frontmost, and slow down the drawing timer
if it isn't. This probably isn't ideal (some users may want it to
update normally in the background!), so you may want to make it
optional, and configurable in the preferences.
Yeah, this isn't really ideal since I actually intend non-frontmost
views to be viewed. I just wanted to spare some processing cycles for
when there are so many, you can't see them all. So I wanted to find
those views that are currently hidden and bypass updating for those.
But maybe a user option to throttle back update speed as you suggest
is my best and only recourse. So, two questions. First, what is the
API call I need to figure out if my view is frontmost? (I was looking
for it for a different reason but haven't found it yet.) Second, is
there a way I can reuse my existing timer to set my new timer
interval, or do I need to release my old timer and create a new one?
Thanks,
Eric
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Cocoa-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/cocoa-dev/email@hidden