NSMenuItem启用状态,动态命名和目标操作

时间:2009-09-10 23:50:23

标签: cocoa menuitem

我的应用程序菜单出现问题。我希望菜单中的一些项目显示为灰色,具体取决于某些BOOL个变量。

此外,我希望我的一些菜单项根据某些BOOL变量获取名称,从而根据菜单项名称执行不同的功能。这可能吗?使用Interface Builder可以将菜单项链接到一个IBAction方法。请告诉我怎么做。

由于

3 个答案:

答案 0 :(得分:4)

请参阅NSMenuValidation protocol

您实现-validateMenuItem :,它用于确定是应启用还是禁用菜单项。在弹出菜单之前,会调用每个菜单项。

答案 1 :(得分:1)

是。您可以以编程方式设置菜单项的启用状态及其标题;请参阅NSMenuItem文档。在获取标题格式时,请务必使用NSLocalizedString

答案 2 :(得分:0)

对于第二个问题;您不需要使用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")];