2013-08-03 26 views
5

NSMenuItem'in yüksekliğini nasıl değiştirebilirim? Bir menünün yazı tipini değiştirdiğimde, bir NSMenuItem yalnızca başlığa sığacak şekilde otomatik olarak yeniden boyutlandırılır ve başlığın üstünde veya altında boşluk bırakmaz. Çok sıkışık görünüyor.NSMenuItem yüksekliği?

bu gibi görünüyor:

enter image description here

böyle bakmak ister:

enter image description here

Ben menü öğeleri atfedilen başlığı ile ilgili bir milyon ince ayarları denedim ama boşuna. Ayrıca, vurgulamak istediğim için menü öğelerinin görünüm özelliğini kullanmak istemiyorum. Başka fikirlerin var mı?

Düzenleme: İstediğim şey (daha fazla veya daha az), ancak NSMenu'ya dayanarak, sıfırdan değil.

enter image description here

cevap

7

Sen istenilen yüksekliğe sahip boş 1 piksellik geniş bir görüntü ayarlayabilirsiniz: o olabilir ama Açıkçası

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

[menuItem setImage:image]; 

sağa 1 piksel ofset olan başlıklarla Tek tip uygulandığında kabul edilebilir.

+0

Teşekkür

https://github.com/SquaredTiki/JGMenuWindow, iyi çalıştı. Daha iyi bir şey gelmezse bunu bir günde cevap olarak kabul edeceğim. Sanırım "en iyi" çözüm, NSMenu'yu sıfırdan yeniden uygulamak olacaktı, ama buna değmeyecek gibi görünüyor. Orijinal soruyu, iTunes 11 menüsünün bir resmini göstermek için düzenledim. – danjonweb

+0

Kutunun dışında güzel düşünen xD – NSAddict

0

şeylerin Karbon yan JGMenuWindow kontrol etmek yerine NSWindow dayalı NSMenu yeniden uygulanması arıyorsanız:

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