画像をパターンとして描画するために、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
}
残念ながら、イメージバインディングは Interface Builder に表示されません。
Interface Builder でバインディングを公開するには、本当に IBPlugin を作成する必要がありますか? これは、再利用する予定のないカスタム ビューにはやり過ぎのように思えます。