2013-08-03 1 views
5

Comment puis-je modifier la hauteur d'un NSMenuItem? Lorsque je change la police d'un menu, un NSMenuItem redimensionne automatiquement pour qu'il corresponde au titre, sans laisser d'espace au-dessus ou en dessous du titre. Il a l'air très à l'étroit.NSMenuItem hauteur?

ressemble à ceci:

enter image description here

Vous voulez qu'il ressemble à ceci:

enter image description here

J'ai essayé un million de coups secs liés au titre attribué des éléments de menu, mais en vain. Je ne veux pas non plus utiliser la propriété view des éléments de menu, car je veux garder la surbrillance. D'autres idées?

Edit: Voici ce que je voudrais (plus ou moins), mais sur la base NSMenu, ne refaisant à partir du sol.

enter image description here

Répondre

7

Vous pouvez définir une image de 1 pixel vide large à la hauteur souhaitée:

NSImage *image=[[NSImage alloc]initWithSize:NSMakeSize(1,30)]; 

[menuItem setImage:image]; 

Il est évident que vous vous retrouvez avec des titres qui sont décalés 1 pixel à droite, bien que cela puisse être acceptable si appliqué uniformément.

+0

Merci, ça a bien fonctionné. Je vais accepter cela comme la réponse dans un jour à moins que quelque chose de mieux se présente. Je suppose que la "meilleure" solution serait de réimplémenter NSMenu à partir de zéro, mais cela ne semble pas en valoir la peine. J'ai édité la question originale pour montrer une image du menu d'iTunes 11, qui est plus ou moins ce que je vais pour. – danjonweb

+0

Nice en dehors de la boîte de pensée xD – NSAddict

1
// you want height 100  
[menuItem setView:[[NSView alloc] initWithFrame:NSMakeRect(0, 0, 0, 100)]];