我有一个应用程序,其中三个 View 显示在同一窗口中。
当用户进入查看 1 时,我希望启用主菜单的某些项目,当用户进入查看 2 其他项目时,以及当进入查看 3 时,我希望禁用所有项目。
我该怎么做?
最佳答案
阅读非正式协议(protocol) NSMenuValidation
的文档:它说:此非正式协议(protocol)允许您的应用程序更新 NSMenuItem
对象的启用或禁用状态。它只声明了一种方法,validateMenuItem
:因此,在 MenuItem 的目标对象中,您必须实现:
- (BOOL)validateMenuItem:(NSMenuItem *)menuItem
{
// what is the item?
NSLog( @"validate %@", [menuItem title] ); // useful for testing
// return something like this:
if( [ [menuItem title] isEqualToString:@"Show something"] ){
return ! [view3 userIsHere];
}
return YES;
}
在此方法的文档中,您可以找到另一个示例。
关于objective-c - 如何禁用 NSMenu 中某些 View 的项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26557693/