绑定NSMenuItem的标题会中断启用/禁用验证

Pau*_*aul 7 cocoa cocoa-bindings

我有一个菜单,其中一些菜单项使用绑定来获得他们的标题.这些项目始终处于启用状态,并且不会像Nor那样自动启用/禁用它们会导致调用validateUserInterfaceItem :. 如果删除标题上的绑定,则会再次开始工作.菜单项的目标设置为nil(First Responder).如果单击一个,它会执行选择器(操作).

错误?该怎么办?

Phi*_*ipp 7

出于某种原因,当您使用绑定设置菜单项的标题时,即使目标/操作是,菜单项也会启用nil.

如果要永久禁用菜单项,可以通过将菜单项的enabled状态绑定到常量来解决此问题NO:

NSNumber *alwaysNo = [NSNumber numberWithBool:NO];
[menuItem bind:@"enabled" toObject:alwaysNo withKeyPath:@"boolValue" options:nil];
Run Code Online (Sandbox Code Playgroud)

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