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>
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 mails | Author | Date |
|---|---|---|
| Francois-Jean De B… | Feb 23, 05:52 | |
| Matt Long | Feb 23, 06:20 | |
| Francois-Jean De B… | Feb 23, 06:38 | |
| Vinay Prabhu | Feb 23, 06:41 | |
| Francois-Jean De B… | Feb 23, 06:48 | |
| Bob Van Osten | Feb 23, 07:01 | |
| Francois-Jean De B… | Feb 23, 07:21 | |
| Vinay Prabhu | Feb 23, 07:33 | |
| Kyle Sluder | Feb 23, 07:38 | |
| Francois-Jean De B… | Feb 23, 08:02 | |
| Kyle Sluder | Feb 23, 08:17 |






Cocoa mail archive

