禁用NSMenuItem

时间:2010-12-24 04:57:49

标签: cocoa nsmenuitem

我以编程方式创建NSMenuItem并禁用它。如果我覆盖validateMenuItem:方法并为所有项返回YES,则菜单项工作正常。

当我告诉菜单autoEnableItems并且不覆盖validateMenuItem:方法时,为什么不启用它?

NSMenuItem *menuItem = [[NSMenuItem alloc] initWithTitle:label action:@selector(methodToLogSomething:) keyEquivalent:@""];
menuItem.representedObject = representedObject;
[menuItem setTarget:self];
[menu insertItem:menuItem atIndex:[[menu itemArray] count]-1];
[menuItem release];
[menu setAutoenablesItems:YES];

1 个答案:

答案 0 :(得分:32)

如果未正确设置目标和操作,菜单项似乎会保持禁用状态。在我的情况下,我忘记了选择器末尾的: