Cocoa绑定 - 尝试将NSMenuItem的状态绑定到我的自定义BOOL

Wil*_*sch 1 macos cocoa cocoa-bindings nsmenuitem

在我的mac应用程序中,[Model m]是一个具有合成BOOL属性和ivar rollAnimations的自定义对象.animationsItem是一个NSMenuItem对象.我想将我的animationsItem的状态绑定到rollAnimations属性和[Model m]的ivar.双向绑定将是理想的(因此更改任一属性会改变另一个),但如果这很麻烦(保留周期等),我将解决单向绑定,这样更改菜单项会更改rollAnimations属性.

这是一段代码片段.它不起作用.我错过了什么?

NSMutableDictionary *bindingOptions = [NSMutableDictionary dictionary];
NSNumber *yesNumber = [NSNumber numberWithBool:YES];
[bindingOptions setObject:yesNumber forKey:NSValidatesImmediatelyBindingOption];
[animationsItem bind:@"state" toObject:[Model m] withKeyPath:@"rollAnimations" options:bindingOptions];
Run Code Online (Sandbox Code Playgroud)

Pet*_*sey 6

Cocoa Bindings Reference列出了菜单项支持的所有绑定.你想要的是@"value",不是@"state".(顺便说一下,这也适用于按钮.)