我创建了 NSView 的子类来绘制图像作为图案:
@interface CePatternView : NSView
{
NSImage* image;
id observableObjectForImage;
NSString* keyPathForImage;
}
@end
我实现了以下内容来公开绑定:
+ (void)initialize
{
// Expose the "image" binding to IB.
[self exposeBinding:@"image"];
}
- (Class)valueClassForBinding:(NSString *)binding
{
if([binding isEqualToString:@"image"])
return [NSImage class];
return nil; // Unknown binding
}
不幸的是,image绑定不会显示在 Interface Builder 中。
我真的必须创建一个 IBPlugin 才能在 Interface Builder 中公开绑定吗?对于我不打算重复使用的自定义视图来说,这似乎太过分了。
标题答案:不,您可以在没有 IB 插件的情况下绑定自定义视图(通过在代码中完成)。
回答问题正文中的问题:是的,您确实需要 IB 插件来公开 IB 中的绑定。
除非您将代码放入 Interface Builder,否则您的代码不会在 Interface Builder 中运行exposeBinding:
消息是您的代码。因此,您需要将其放入 Interface Builder 中。这意味着编写一个 IB 插件。
此外,IB 插件与旧的 IB 调色板不同。插件需要 IB 3 并且更容易创建。调色板需要 IB 2 并且创建起来很痛苦。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)