On Mon, Sep 29, 2008 at 7:21 PM, Daniel Weber <[EMAIL PROTECTED]> wrote:
> Hi, I have a custom view that takes up the whole frame of my textured
> window. Normally, the corners of a textured window are rounded. However,
> since my custom view is rectangular, it draws over the rounded corners. I am
> using Core Animation to draw in the view. I think what I need to do is clip
> my drawing so the corners are transparent, but I haven't been successful.
> What I've tried so far is drawing a rectangle with rounded corners that
> approximates the window's rounded corners using CGContextAddArcToPoint. Then
> I call CGContextClip. But it's not working, all I'm seeing is garbage at the
> window corners, not transparency. Any suggestions?

You need to ensure a couple of things to ensure that transparency appears there.

1) setOpaque:NO on the NSWindow you're in. By default this is YES,
with what I assume are obvious consequences.

2) Return NO from -isOpaque in your NSView. NO is the default value
but it can be overridden by subclasses.

And then one of:

3a) Set the NSWindow's background color to [NSColor clearColor].

3b) Clear your contents by filling with [NSColor clearColor] (using
NSCompositeCopy to make sure it doesn't just get blended with what's
already there) before clipping and drawing your real contents.

(Note that step 2 is not strictly necessary with step 3b depending on
what the rest of the drawing does, but it doesn't hurt and the
reasoning involved is beyond the scope of this message.)

Mike
_______________________________________________

Cocoa-dev mailing list ([email protected])

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 [EMAIL PROTECTED]

Reply via email to