Skip navigation.
 
mlProblem with CALayer delegate
FROM : Francois-Jean De Brienne
DATE : Sat Feb 23 05:52:59 2008

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?

Related mailsAuthorDate
mlProblem with CALayer delegate Francois-Jean De B… Feb 23, 05:52
mlRe: Problem with CALayer delegate Matt Long Feb 23, 06:20
mlRe: Problem with CALayer delegate Francois-Jean De B… Feb 23, 06:38
mlRe: Problem with CALayer delegate Vinay Prabhu Feb 23, 06:41
mlRe: Problem with CALayer delegate Francois-Jean De B… Feb 23, 06:48
mlRe: Problem with CALayer delegate Bob Van Osten Feb 23, 07:01
mlRe: Problem with CALayer delegate Francois-Jean De B… Feb 23, 07:21
mlRe: Problem with CALayer delegate Vinay Prabhu Feb 23, 07:33
mlRe: Problem with CALayer delegate Kyle Sluder Feb 23, 07:38
mlRe: Problem with CALayer delegate Francois-Jean De B… Feb 23, 08:02
mlRe: Problem with CALayer delegate Kyle Sluder Feb 23, 08:17