【发布时间】:2013-05-08 15:25:45
【问题描述】:
这是我的示例类和用法:
@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];
这里 validateMenuItem 没有被调用。我已经设定了行动和目标。 Target 是这个类对象本身,我只在这个类中定义了 validatemenuItem。
这里有什么我遗漏的吗?
【问题讨论】:
-
您将
menuEventHandler:的选择器指定为操作,应该如何调用validateMenuItem:?
标签: cocoa nsmenuitem nsmenu