我不确定如何描述我需要的内容,但我会尝试一下,通过一个例子:
假设我们有一个窗口和一个侧边栏,想要切换它(我的意思是边栏:开/关)。
现在,我们也说:
实现这一目标的最实用的Cocoa友好方法是什么?
当然,这意味着,例如:
我希望你能得到这个想法;这绝对不是什么难事;但我肯定对如何使用Cocoa的所有技巧来快速做到这一点感到困惑。
谢谢!
答案 0 :(得分:3)
我假设您有一些实现动作-toggleSidebar:
的控制器对象,并且两个菜单都以同一个控制器为目标。此外,在控制器中,您保留一个实例变量BOOL isSidebarShown
。
让您的控制器实现NSUserInterfaceValidations
协议。像这样:
- (BOOL)validateUserInterfaceItem:(id <NSValidatedUserInterfaceItem>)anItem
{
if (anItem.action == @selector(toggleSidebar:) && [anItem isKindOfClass:[NSMenuItem class]])
{
NSString* title = isSidebarShown ? @"Hide Sidebar" : @"Show Sidebar";
[(NSMenuItem*)anItem setTitle:title];
}
return YES; // either way, the menu item is enabled
}