Voici ma classe d'échantillon et de l'utilisation:ValidateMenuItem n'est pas appelé pour NSMenuItem
@interface CCocoaMenuItem : NSMenuItem
{
someClass *someobj;
}
- (void)menuEventHandler:(id)target;
- (void)setEnableItem:(BOOL)nEnabled;
@end
@implementation CCocoaMenuItem
- (BOOL)validateMenuItem:(NSMenuItem *)item {
// return YES or NO based on some conditions;
// But this method is not getting called
}
@end
CCocoaMenuItem *dummyItem = [[CCocoaMenuItem allocWithZone:[NSMenu menuZone]] initWithTitle:(NSString*)aStr action:nil keyEquivalent:@""] autorelease];
[dummyItem setAction:@selector(menuEventHandler:)];
[dummyItem setTarget:dummyItem];
ici validateMenuItem n'est pas appelé. J'ai défini l'action et la cible. La cible est cet objet de classe lui-même et j'ai défini validatemenuItem dans cette classe seulement.
Y a-t-il quelque chose qui me manque ici?
Vous sélecteur attribué de 'menuEventHandler:' comme une action, comment 'validateMenuItem : 'est censé être appelé? –