Skip navigation.
 
mlRe: drawRect: called twice for NSView subclass.
FROM : David Duncan
DATE : Sun Apr 20 20:13:04 2008

On Apr 19, 2008, at 5:15 PM, William Hunt wrote:

> Essentially I have a window with a custom view atop a button.  What 
> happens at each refresh, however, is that the custom view's 
> drawRect: is called twice.  First it is called with the whole 
> window's NSRect, then it is called with the "proper" NSRect.  The 
> result is that if I draw a circle at (0,0), it gets drawn twice at 
> different locations:
>
> What is going on here?  Is this buggy behavior or correct behavior? 
> My code is basically a new Cocoa application with a single NSView 
> subclass.  There is absolutely nothing funny (that I know of) going 
> on here.  That leads me to believe that the behavior is "correct," 
> and that I'm just missing something.
>
> For the record, I only want the one call to drawRect:, the one with 
> the "proper" NSRect.



FYI, the "proper" rect is not guaranteed to be the bounds rect of your 
view either. If Cocoa only needs you to refresh a subsection of your 
view, then you will get a -drawRect: with just that subsection. In 
general, you should only use the rect passed to you in -drawRect: as a 
guideline for what needs to be updated (i.e. for rejection tests) 
rather than to define the coordinate system to draw into.
--
David Duncan
Apple DTS Animation and Printing
david.<email_removed>

Related mailsAuthorDate
mldrawRect: called twice for NSView subclass. William Hunt Apr 20, 02:15
mlRe: drawRect: called twice for NSView subclass. Scott Thompson Apr 20, 03:28
mlRe: drawRect: called twice for NSView subclass. David Duncan Apr 20, 20:13
mlRe: drawRect: called twice for NSView subclass. William Hunt Apr 20, 22:49