禁用NSMenuItem

joe*_*els 20 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];
Run Code Online (Sandbox Code Playgroud)

joe*_*els 34

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

  • 我忘了通过`setTarget`设置目标.设置不正确.谢谢! (6认同)