在我的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];
答案 0 :(得分:6)
The Cocoa Bindings Reference列出all the bindings a menu item supports。您想要的是@"value"
,而不是@"state"
。 (顺便说一句,This goes for buttons, too。)