On 30/12/2008, at 4:11 PM, John Kestner wrote:

So am I right in believing that drawRect: should not need to be explicitly called in each subview from within my custom view's drawRect:? In any case, see if you can make sense of this...


Seems way too complicated to me. I have this in a category on NSView, which returns an NSImage of the view's content, including all subviews:

-(NSImage*) bitmapImageInRect:(NSRect) rect
{
NSBitmapImageRep* imageRep=[self bitmapImageRepForCachingDisplayInRect:rect]; NSGraphicsContext *previousContext = [NSGraphicsContext currentContext]; [NSGraphicsContext setCurrentContext:[NSGraphicsContext graphicsContextWithBitmapImageRep:imageRep]];
        [[NSColor clearColor] set];
        NSSize imageRepSize = [imageRep size];
        NSRectFill(NSMakeRect(0, 0, imageRepSize.width, imageRepSize.height));
        [NSGraphicsContext setCurrentContext:previousContext];
        [self cacheDisplayInRect:rect toBitmapImageRep:imageRep];
        NSImage* bitmapImage=[[NSImage alloc] initWithSize:rect.size];
        [bitmapImage addRepresentation:imageRep];
        return bitmapImage;
}

You could of course modify this to return the NSData from a - representationUsingType:properties: call on the NSBitMapImageRep.

--
Rob Keniger



_______________________________________________

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