我已经继承了NSMenu并通过Interface Builder连接了一堆NSMenuItem。我已经通过调试器进行了测试,以查看它们是否已真正初始化。

菜单设置为不自动启用项目。不过,当我将任何NSMenuItem设置为[myMenuItem setEnabled:NO]时,它们仍会继续启用。即使我从NSMenu子类中调用[self update]也是如此。

我想念什么?

最佳答案

遇到了同样的问题,所以我认为我应该发布解决方案。 NSMenu自动启用NSMenuButtons,因此我们必须重写它。

在IB中:

或以编程方式:

// Disable auto enable
[myMenu setAutoenablesItems:NO];

// Test it
[myMenuButton setEnabled:NO];
[myMenuButton setEnabled:YES];

10-08 10:47