我似乎喜欢设计新的,UIViews并UIControls实现自己的-drawRect:方法.这对我来说很有用,特别是UIViews在Interface Builder中使用时.
但是在Interface Builder中编写它们很烦人,因为它们只是显示为无聊的普通矩形.
如果视图实际上将自己呈现为内置控件那么会很棒.
有没有什么方法可以构建我的项目,以便Interface Builder将呈现我的自定义视图?
我创建了NSView的子类来将图像绘制为模式:
@interface CePatternView : NSView
{
NSImage* image;
id observableObjectForImage;
NSString* keyPathForImage;
}
@end
Run Code Online (Sandbox Code Playgroud)
我实现了以下内容来公开绑定:
+ (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
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,图像绑定不会出现在Interface Builder中.
我是否真的必须创建一个IBPlugin来在Interface Builder中公开绑定?对于我不打算重用的自定义视图来说,这似乎有些过分.