Re: Problem with CALayer delegate
Re: Problem with CALayer delegate
- Subject: Re: Problem with CALayer delegate
- From: Francois-Jean De Brienne <email@hidden>
- Date: Sat, 23 Feb 2008 01:21:04 -0500
I am calling those methods but my drawLayer method still is not
getting called.
On 23-Feb-08, at 1:01 AM, Bob Van Osten wrote:
Try calling [mainLayer setNeedsDisplay] or [mainLayer display]. You
need to call one of those to get layers to update properly.
On Feb 22, 2008, at 9:48 PM, Francois-Jean De Brienne wrote:
thanks, but this did not help. I'm still not getting drawLayer:
inContext to be called.
On 23-Feb-08, at 12:41 AM, Vinay Prabhu wrote:
Instead of creating CALayer object using,
mainLayer = [[[CALayer alloc] init] retain];
try creating the CALayer this way,
mainLayer = [[CALayer layer] retain];
-Vinay
On Feb 23, 2008, at 10:50 AM, Matt Long wrote:
You could try creating your own CALayer derived class that
overrides
- (void)drawInContext:(CGContextRef)ctx
drawLayer simply allows your delegate to override that same
method externally.
-Matt
On Feb 22, 2008, at 9:52 PM, Francois-Jean De Brienne wrote:
Hello everyone,
I'm a very new cocoa developer (I switched two months ago) but
an experienced (15+ years) developer.
I'm struggling trying to get a CALayer delegate method,
specifically drawLayer being called. I am trying to host the
CALayer inside an NSView that would be the delegate for the
CALayer.
The CALayer is an attribute of my custom NSView called mainLayer.
Here is the initWithFrame method for my custom NSView:
-(id) initWithFrame: (NSRect) frameRect
{
self = [super initWithFrame:frameRect];
if (self)
{
mainLayer = [[[CALayer alloc] init] retain];
[mainLayer setDelegate:self];
[self setLayer:mainLayer];
[self setWantsLayer:YES];
}
return self;
}
Then, the custom NSView declares a drawLayer method as such
(that I'd want to be called from my mainLayer):
-(void)drawLayer:(CALayer*) layer inContext:(CGContextRef)ctx
{
NSLog (@"Entered drawLayer");
}
Now, whenever I send the setNeedsDisplay message to mainLayer, I
assume that drawLayer would be called. It is not.
drawLayer is also declared in the .h for the custom NSView (if
that makes any difference).
If I override and define drawRect for my NSView, I can verify
that it does enter that method:
- (void)drawRect:(NSRect)rect
{
NSLog (@"Entered drawRect");
}
What am I doing wrong?
_______________________________________________
Cocoa-dev mailing list (email@hidden)
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:
This email sent to email@hidden
_______________________________________________
Cocoa-dev mailing list (email@hidden)
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:
This email sent to email@hidden
_______________________________________________
Cocoa-dev mailing list (email@hidden)
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:
This email sent to email@hidden
_______________________________________________
Cocoa-dev mailing list (email@hidden)
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:
This email sent to email@hidden