• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: Custom drawing in IKImageBrowserView fails
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Custom drawing in IKImageBrowserView fails


  • Subject: Re: Custom drawing in IKImageBrowserView fails
  • From: Thomas Goossens <email@hidden>
  • Date: Wed, 25 Nov 2009 14:44:44 +0100

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

  • Follow-Ups:
    • Re: Custom drawing in IKImageBrowserView fails
      • From: Florian Soenens <email@hidden>
    • Re: Custom drawing in IKImageBrowserView fails
      • From: Mike Abdullah <email@hidden>
References: 
 >Custom drawing in IKImageBrowserView fails (From: Florian Soenens <email@hidden>)

  • Prev by Date: Custom drawing in IKImageBrowserView fails
  • Next by Date: NSOutlineView - How to hide disclosure triangle for root nodes ?
  • Previous by thread: Custom drawing in IKImageBrowserView fails
  • Next by thread: Re: Custom drawing in IKImageBrowserView fails
  • Index(es):
    • Date
    • Thread