2010-07-26 37 views
6

我有一个菜单项,其中一些菜单项使用绑定来获得它们的标题。这些项目始终处于启用状态,并且既不会自动启用/禁用应用程序,也不会导致调用validateUserInterfaceItem :.如果您删除了标题上的绑定,则会再次开始工作。菜单项的目标设置为零(First Responder)。如果你点击一个,它会执行选择器(动作)。绑定NSMenuItem的标题中断启用/禁用验证

错误?该怎么办?

+1

请注意,近5年后仍然如此。 – DanielGibbs 2015-06-23 04:14:28

+1

然后两年后。 – matt 2017-04-22 02:49:34

回答

4

由于某些原因,当您使用绑定设置菜单项的标题时,即使目标/操作是nil,菜单项也会变为启用 。

如果要永久禁用您可以通过菜单项的enabled状态结合到恒定NO解决这个菜单项:

NSNumber *alwaysNo = [NSNumber numberWithBool:NO]; 
[menuItem bind:@"enabled" toObject:alwaysNo withKeyPath:@"boolValue" options:nil]; 

请注意,这不是最优雅的解决办法,但在我的情况下,它仍然比不使用绑定的标题更清洁。