【问题标题】:How are binding specified for Interface Builder plugins?如何为 Interface Builder 插件指定绑定?
【发布时间】:2008-11-26 14:27:40
【问题描述】:
我正在为 NSView 子类创建一个 Interface Builder 插件。我一直在关注Interface Builder Plug-in Programming Guide,但它并没有回答我所有的问题。我的班级有一个 NSString 属性和 4 个 NSColor 属性,我想在设计时为其创建绑定。
我无法弄清楚插件项目中绑定的位置。文档指出 Inspector Object 仅用于创建 Attribute Inspector。类描述文件 (.classdescription) 列出了出口和动作,但不列出绑定。
在哪里为我的班级指定绑定?
【问题讨论】:
标签:
objective-c
cocoa
macos
interface-builder
【解决方案1】:
在你的类初始化器中,如下调用+ (void)exposeBinding:(NSString *)binding:
+ (void)initialize
{
[self exposeBinding:@"someProperty"];
}
您可能还想按如下方式指定值类:
- (Class)valueClassForBinding:(NSString *)binding
{
if ([binding isEqual:@"someProperty"])
{
return [NSNumber class];
}
else
{
return [super valueClassForBinding:binding];
}
}
看看this CocoaDev article 和苹果的NSKeyValueBindingCreation Protocol Reference