2011-07-15 11 views
14

सबसे पहले, मैं यह इंगित करना चाहता हूं कि यह प्रश्न शायद पहले से ही पूछा गया है, मुझे बस उनसे कोई जवाब नहीं मिला।प्रोग्रामिंग में एनएसएमएनयूइटम के साथ एनएसएमएनयू बनाना?

तो, मैं मुख्य बार में एनएसएमएनयू और एनएसएमएनयूइटम बनाने की कोशिश कर रहा हूं, इसलिए fe। NSMenu फ़ाइल होगी और फिर इसमें 3x NSMenuItem होगा, नया, ओपन और सेव।

NSMenu *fileMenu = [[NSMenu alloc] initWithTitle:@"File"]; 
NSMenuItem *newMenu = [[NSMenuItem alloc] initWithTitle:@"New" action:NULL keyEquivalent:@""]; 
NSMenuItem *openMenu = [[NSMenuItem alloc] initWithTitle:@"Open" action:NULL keyEquivalent:@""]; 
NSMenuItem *saveMenu = [[NSMenuItem alloc] initWithTitle:@"Save" action:NULL keyEquivalent:@""]; 
[newMenu setMenu:fileMenu]; 
[openMenu setMenu:fileMenu]; 
[saveMenu setMenu:fileMenu]; 

लेकिन कुछ भी नहीं होता है मैं यकीन है कि मैं आवेदन है कि यह FileMenu का उपयोग करना चाहिए बताने के लिए है, लेकिन मैं यह कैसे करते हो, और:

लेकिन कुछ भी नहीं काम कर रहा है, यहाँ है कि मैं क्या वर्तमान में है अगर यह समस्या नहीं है, तो क्या है? मैं इस सामान पर बहुत नया हूं, लेकिन सीखने में रूचि रखता हूं, इसलिए किसी भी टिप से कुछ भी बेहतर नहीं होगा!

उत्तर

28

जब आप मेनू सेट करते हैं, तो आप उस आइटम के लिए दिखाई देने वाले मेनू को सेट करते हैं, न कि इसके मूल मेनू।

आपके मेनू में उन तीन आइटम जोड़ने के लिए, का उपयोग करें:

[fileMenu addItem: newMenu]; 
[fileMenu addItem: openMenu]; 
[fileMenu addItem: saveMenu]; 

और फिर मेनू पट्टी करने के लिए मेनू जोड़ने के लिए:

NSMenuItem *fileMenuItem = [[NSMenuItem alloc] initWithTitle: @"File"]; 
[fileMenuItem setSubmenu: fileMenu]; // was setMenu: 
[[NSApp mainMenu] addItem: fileMenuItem]; 
[fileMenuItem release]; 

हर मेनू कई मेनू आइटम का मालिक है, उपमेनू के लिए एक मेनू आइटम जिम्मेदार हो सकता है; और इन सभी मेनू यूआई को [NSApp mainMenu] द्वारा लगाए गए हैं।

संबंधित मुद्दे