用结构清洁绑定

时间:2010-05-02 18:39:57

标签: objective-c cocoa macos struct cocoa-bindings

我有一个模型类,它对于拥有NSSize和NSPoint实例变量非常有意义。这很可爱。

我正在尝试为此对象创建编辑界面。我想绑定size.width等等。当然,这不起作用。

这个问题最干净,最可靠的解决方案是什么?当然,我可以为我使用的每个结构的各个成员编写单独的访问器,但似乎应该有更好的解决方案。

1 个答案:

答案 0 :(得分:3)

您不必为所有成员创建单独的访问者,您只需为您关注的类型创建包装器,例如:

@interface SizeWrapper : NSObject {
    CGFloat width, height;
}    
@property (readwrite) CGFloat width, height;    
- (id)initWithSize:(NSSize)sz;    
- (NSSize)sizeValue;
@end

@implementation SizeWrapper
@synthesize width, height;

- (id)initWithSize:(NSSize)sz {
    if (self = [super init]) {
        width  = sz.width;
        height = sz.height;
    }
    return self;
}

- (NSSize)sizeValue {
    return NSMakeSize(width, height);
}
@end