Mam NSMenuItem z wiązką elementów w nim, jednak ... lista nie jest włączona.NSMenuItem włącz elementy
Co to znaczy:
To jest mój kod:
- (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];
}
ja ustawiania wszystko jako włączona, ale jest to nadal wyłączona. Jak mogę to rozwiązać?
Podczas gdy pozycje menu wymagają poprawnego selektora, niekoniecznie muszą mieć cel (innymi słowy, cel ** może ** wynosić "zero"). Cel 'nil' oznacza" użyj pierwszego obiektu w łańcuchu respondenta, który odpowiada na mój selektor ". Jest to funkcjonalnie równoważne ustawieniu celu elementu menu na obiekt proxy 'First Responder' w pliku nib. (Zobacz http://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/MenuList/Articles/EnablingMenuItems.html#//apple_ref/doc/uid/20000261-74653-BAJBGJHB) – NSGod
Aha! Już myślałem o tym, dlaczego do cholery metoda inicjalizacji nie ma argumentu docelowego. Dzięki za wyczyszczenie tego! – v1Axvw
Twoja druga edycja wciąż nie jest całkowicie poprawna: pierwszy responder otrzyma wiadomość o akcji, ale nie musi jej implementować. Jeśli nie, przekazuje wiadomość do następnego respondenta. To jest łańcuch odpowiadający w pracy. –