通常来说允许和禁用菜单项是自动的,当没有动作处理某个菜单时,菜单就自动被禁用。如果你希望通过代码实现,只需要重载
validateMenuItem:
方法。代码如下:
- (BOOL) validateMenuItem: (id <NSMenuItem>) menuItem
{
BOOL result = YES;
if ([menuItem action] == @selector(deleteNote:)) {
if ([notes count] == 1) {
result = NO; //
最后一项无法删除
}
} else if ([menuItem action] == @selector(gotoNote:)) {
if ([notes count] == 1) {
result = NO;
}
}
return (result);
} // validateMenuItem