Skip navigation.
 
mlRe: Problem with CALayer delegate
FROM : Bob Van Osten
DATE : Sat Feb 23 07:01:26 2008

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_removed>)
>>>>
>>>> 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/matt.<email_removed>
>>>>
>>>> This email sent to matt.<email_removed>

>>>
>>> _______________________________________________
>>>
>>> Cocoa-dev mailing list (<email_removed>)
>>>
>>> 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/vinay.<email_removed>
>>>
>>> This email sent to vinay.<email_removed>
>>>

>>

>
> _______________________________________________
>
> Cocoa-dev mailing list (<email_removed>)
>
> 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/<email_removed>
>
> This email sent to <email_removed>

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