24

我以编程方式创建一个 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];
4

1 回答 1

45

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

于 2011-01-13T17:15:59.383 回答