On 20 Dec 2008, at 11:20 am, David Alter wrote:

I want to draw in a NSView but not when drawRect is called.

Why? There are very few situations when this is required or appropriate.

To do this I
understand that I need to call lockFocus before drawing and unlockFocus after. The drawing appears to happen but it is not until I deactivate the window do I see my results. How can I get it to refresh once I have done my
drawing?

You need to flush it to the screen. But don't - it's just not the right way to do drawing.

To test this out I have sub classed NSView and overloaded mouseDown. I added
the following code.


Store the rects to be drawn in a list - your view could own this list for simplicity while you are experimenting. Then invalidate the rect you need to repaint in mouse down. -drawRect: then just iterates over the list and draws those rects that intersect the update area.

This is way, way easier than trying to fudge around drawing in a non- standard manner. Learn it and love it.

hth,


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