Re: Custom drawing in IKImageBrowserView fails
Re: Custom drawing in IKImageBrowserView fails
- Subject: Re: Custom drawing in IKImageBrowserView fails
- From: Mike Abdullah <email@hidden>
- Date: Wed, 25 Nov 2009 13:57:33 +0000
Also, you could try swapping out the image browser (or making it hidden) when it is empty, and display an alternative placeholder view in its place.
Also, file a bug report requesting the ability to do this built-in.
On 25 Nov 2009, at 13:44, Thomas Goossens wrote:
> Hi Florian,
>
> You can't do custom drawing this way (because the IKImageBrowserView renders into an openGL surface, so AppKit or CoreGraphics calls won't do anything).
> So to do what you want you can either:
> - make the view layer backed and add a sub-layer
> - add an overlay transparent window on top of the image browser view
> - add an overlay layer with setForegroundLayer: (that's the easiest solution but it is SnowLeopard only).
>
> -- Thomas
>
>
> On Nov 25, 2009, at 2:34 PM, Florian Soenens wrote:
>
>> Hi list,
>>
>> i'm trying to override an IKImageBrowserView to do some custom drawing but i'm stuck.
>> What i try to accomplish is that when the view contains zero items, some custom drawing happens like drawing an NSAttributedString that says "Drop items here..."
>> Problem is that my drawing code gets never called.
>>
>> Here's the drawRect method of my IKImageBrowserView:
>>
>> - (void)drawRect:(NSRect)rect
>> {
>> [super drawRect:rect];
>>
>> NSUInteger numItems = [[self dataSource] numberOfItemsInImageBrowser:self];
>>
>> if(numItems <= 0)
>> {
>> NSLog(@"No items in me"); // This gets called, so i'm sure the above code works
>>
>> NSRect bounds = [self bounds];
>> bounds.size.width = 200;
>> bounds.size.height = 200;
>> bounds.origin.x += 200;
>> bounds.origin.y += 200;
>>
>> //[NSGraphicsContext saveGraphicsState];
>>
>> [[NSColor yellowColor] set]; // Just for testing purposes
>> NSRectFill(bounds);
>>
>> //[NSGraphicsContext restoreGraphicsState];
>> }
>> }
>>
>> Uncommenting the NSGrahicsContext doesn't help either.
>>
>> Anyone has any ideas or workarounds for this?
>> Thanks in advance,
>> Florian
>> _______________________________________________
>>
>> 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