我有一个NSView
子类,我想公开一个属性(NSGradient
确切地说是一个),以便我可以将它与其他对象绑定(以编程方式使用该bind:toObject:withKeyPath:options:
方法)。
我应该采取哪些步骤?
这是我所做的:
+(void)initalize {
[self exposeBinding:@"gradient"];
}
- (Class)valueClassForBinding:(NSString*)binding {
if ([binding isEqualToString:@"gradient"]) { return([NSGradient class]); }
return(nil);
}
-(NSArray*)exposedBindings {
return([NSArray arrayWithObjects:@"gradient",nil]);
}
我不介意绑定没有显示在 Interface Builder 中。这gradient
是一个实现的属性@property (nonatomic, retain) NSGradient* gradient
,它在当前实现中运行良好。
只需要上面的代码来实现吗?(这似乎太容易了)我相信我错过了一些东西。
注意:我不是 Bindings 专家,但我在大部分 Objective-C 方面都做得很好。