मेरे पास एक एनएसएमएनयूइटम है जिसमें वस्तुओं का एक गुच्छा है, हालांकि ... सूची बस सक्षम नहीं होती है।NSMenuItem आइटम सक्षम करें
मैं क्या मतलब:
यह मेरा कोड है:
- (void)didFetchNewList:(NSArray *)list
{
NSArray *smallList = [list subarrayWithRange:NSMakeRange(0, 10)];
NSMenu *menu = [[NSMenu alloc] initWithTitle:@""];
for (NSDictionary *dict in smallList)
{
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"MMM dd @ HH:mm:ss"];
NSMenuItem *soMenuItem = [[NSMenuItem alloc] initWithTitle:
[dateFormatter stringFromDate:[dict objectForKey:@"date"]]
action:nil
keyEquivalent:@""];
[soMenuItem setEnabled:YES];
[menu addItem:soMenuItem];
}
[menu addItem:[NSMenuItem separatorItem]];
NSMenuItem *soMenuItem = [[NSMenuItem alloc]
initWithTitle:@"Settings" action:nil keyEquivalent:@"S"];
[soMenuItem setEnabled:YES];
[menu addItem:soMenuItem];
[statusItem setMenu:menu];
[statusItem setEnabled:YES];
}
मैं सब कुछ सक्षम के रूप में स्थापित करने हूँ, फिर भी यह अभी भी अक्षम है। इसे कैसे हल किया जा सकता है?
जबकि मेनू आइटमों के पास वैध चयनकर्ता की आवश्यकता होती है, उनके पास एक लक्ष्य होना आवश्यक नहीं है (दूसरे शब्दों में, लक्ष्य ** ** 'शून्य हो सकता है)। एक 'शून्य' लक्ष्य का अर्थ है "उत्तरदाता श्रृंखला में पहली वस्तु का उपयोग करें जो मेरे चयनकर्ता को जवाब देता है"। यह मेनू आइटम के लक्ष्य को nib फ़ाइल में 'प्रथम प्रतिक्रिया' प्रॉक्सी ऑब्जेक्ट में सेट करने के लिए कार्यात्मक रूप से बराबर है। (Http://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/MenuList/Articles/EnablingMenuItems.html#//apple_ref/doc/uid/20000261-74653-BAJBGJHB) – NSGod
आहा देखें! मैं पहले से ही सोच रहा था कि क्यों प्रारंभिक विधि में लक्ष्य तर्क नहीं है। इसे साफ करने के लिए धन्यवाद! – v1Axvw
आपका दूसरा संपादन अभी भी बिल्कुल सही नहीं है: पहले उत्तरदाता को एक्शन संदेश प्राप्त होगा, लेकिन इसे लागू करने की आवश्यकता नहीं है। यदि ऐसा नहीं होता है, तो यह संदेश को इसके अगले उत्तरदाता को अग्रेषित करेगा। यह काम पर प्रतिक्रियाकर्ता श्रृंखला है। –