2011-10-27 10 views
6

में प्रोग्रामिंग रूप से एनएसएमएनयूइटम्स बनाना प्रोग्रामिंग मैं अपने मोनोमैक एप्लिकेशन में प्रोग्रामेटिक रूप से मेनू जोड़ने की कोशिश कर रहा हूं। मैंने MainMenu.xib खोला है और मेनमेनू नियंत्रण से सभी NSMenuItem हटा दिया है।मोनोमैक

मैं अपने FinishedLaunching ओवरराइड में निम्न कोड जोड़ रहा:

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); 

लेकिन यह कुछ भी नहीं कर रहा है।

जब मैं MainWindowController.Initialize() करने के लिए कोड जोड़ने के लिए, मैं एक अभिकथन विफलता "उस आइटम को पहले से ही मेनू में सम्मिलित करने के लिए एक और मेनू में है"

मैं कोड इस में पाया पोर्टिंग था तो जवाब: Creating NSMenu with NSMenuItems in it, programmatically?

उत्तर

5

पता चला है मैं निम्नलिखित करना था:

fileMenuItem.Submenu = fileMenu; 

NSMenuItem की सबमेनू संपत्ति मेनू संपत्ति वास्तविक मेनू के बजाय करने के लिए सेट किया जाना चाहिए था।

+0

यह काम करता है, हालांकि आपको फ़ाइल का शीर्षक भी सेट करना चाहिए Menu.title = "सममित" अगर यह पहली वस्तु नहीं है (जिसका हमेशा आवेदन का नाम होता है) – PetrV