我的应用程序菜单有问题。我希望菜单中的一些项目根据某些BOOL
变量显示为灰色。
另外,我希望我的一些菜单项根据某些BOOL
变量获取名称,从而根据菜单项名称执行不同的功能。这可能吗?与使用 Interface Builder 一样,您可以将菜单项链接到一个 IBAction 方法。请告诉我如何做到这一点。
谢谢
您实现 -validateMenuItem:,它用于确定是否应启用或禁用菜单项。在弹出菜单之前为每个菜单项调用它。
是的。您可以通过编程设置菜单项的启用状态及其标题;请参阅 NSMenuItem 文档。NSLocalizedString
获取标题格式时记得使用。
对于第二个问题;您不需要使用 Interface Builder 来连接菜单项的目标/操作。
您可以使用如下代码:
NSMenuItem *menuItem; // Set this to your menu item.
// Set the target to an instance of a class which contains the action method.
[menuItem setTarget:targetClass];
// Set the action to the (IBAction) method to call.
[menuItem setAction:NSSelectorFromString(@"actionMethod")];