Mailing Lists: Apple Mailing Lists

Image of Mac OS face in stamp
 
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Leopard] Spotlight/Help-like menu item



Hi Ron!

Thanks for taking the time to write back.

What I am after is not a static image, but an interactive control drawn on a background. In Leopard, I can say [menuItem setView:myView] where myView is a custom NSView holding my search box control.

Trouble starts when I want my view to draw a background (like the blue background used by Spotlight), I find that there remains a white area above and below my view which is drawn by the menu itself. What I am after is a way to get rid of that border.

This might mean, I'll have to drop using setView: altogether.

Best,
Pierre

On 27 Jan 2008, at 05:36, Ron Fleckner wrote:


On 27/01/2008, at 9:09 AM, Pierre Bernard wrote:

Hi!

I would like to create a custom menu item much like the search item used in Leopard's Help or Spotlight menus.

I thought this ought to be simple under Leopard, as it is now possible to add an arbitrary view to a menu item. This however only gets me 80% of the way and I am not even sure a working solution lies in that direction. The problem is that the custom view does not cover all of the menu item. There remains a border above and below of my view.

- Is there a way to stretch my view over those borders?
- Where does the menu do its drawing? NSMenuItem is neither a view nor a cell. I believe the custom view takes NSMenuItemCell out of the loop.
- What was the pre-Leopard way of doing this? I remember something about going down to Carbon, but can't find much information on the web.


Best,
Pierre

Hi Pierre,

I don't know about Leopard (yet), but on Tiger you can add any arbitrary image to a menu item. In the code below, "colours" is a rainbow-like image 22 px by 100 px. The variable "title" is an empty string. This works on Tiger with no border around the image. I haven't experimented with larger images, but they might work on Leopard.

	NSImage *myImage = [NSImage imageNamed:@"colours"];

// Make the menu
NSMenuItem *newItem = [[NSMenuItem allocWithZone:[NSMenu menuZone]] initWithTitle:title action:NULL keyEquivalent:@""];
[newItem setImage: myImage];


Is that what you're after?

HTH,
Ron

--- Pierre Bernard http://www.bernard-web.com/pierre http://www.houdah.com



Attachment: smime.p7s
Description: S/MIME cryptographic signature

_______________________________________________

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:
http://lists.apple.com/mailman/options/cocoa-dev/email@hidden

This email sent to email@hidden

References: 
 >[Leopard] Spotlight/Help-like menu item (From: Pierre Bernard <email@hidden>)
 >Re: [Leopard] Spotlight/Help-like menu item (From: Ron Fleckner <email@hidden>)



Visit the Apple Store online or at retail locations.
1-800-MY-APPLE

Contact Apple | Terms of Use | Privacy Policy

Copyright © 2007 Apple Inc. All rights reserved.