2011-10-27 27 views
6

içinde programatik olarak NSMenü öğelerini oluşturma MonoMac uygulamasına programsal olarak bir menü eklemeyi deniyorum. MainMenu.xib'i açtım ve tüm NSMenuItem'u MainMenu denetiminden kaldırdım.MonoMac

var fileMenuItem = new NSMenuItem("File"); 
var fileMenu = new NSMenu(); 

var fileNew = new NSMenuItem("New"); 
var fileOpen = new NSMenuItem("Open"); 
var fileSave = new NSMenuItem("Save"); 

fileMenu.AddItem(fileNew); 
fileMenu.AddItem(fileOpen); 
fileMenu.AddItem(fileSave); 

fileMenuItem.Menu = fileMenu; 

NSApplication.SharedApplication.MainMenu.AddItem(fileMenuItem); 

Ama hiçbir şey yapmıyor:

benim FinishedLaunching geçersiz kılma aşağıdaki kodu ekliyorum.

Ben MainWindowController.Initialize() kod eklemek, ben bir onaylama işlemi hatası olsun SO cevap "öğe zaten menüye eklenen başka menüde olduğunu edilecek"

Bu bulundu kodu taşıma edilmiştir: Creating NSMenu with NSMenuItems in it, programmatically?

cevap

5

aşağıdaki yapmak zorunda çıkıyor: NSMenuItem ait

fileMenuItem.Submenu = fileMenu; 

Alt menü özelliği gerçek bir menü yerine menü özelliğine ayarlanır gerekirdi.

+0

bu çalışma, dosyaMenu.title = "Someting" başlığını da eklemeniz gerekir, ancak ilk öğe değilse (her zaman uygulama adına sahip olan) – PetrV