要做到这一点的最佳方式(如Cocoafan指出的)是使用Value Transformers。值转换器允许您将用于模型的对象类型转换为适合视图的类型。这是一个非常简单的字符串/数组转换器,它允许您将数据存储为逗号分隔的字符串,但会将其转换为字符串数组。
@interface StringArrayTransformer: NSValueTransformer {}
@end
@implementation StringArrayTransformer
+ (Class)transformedValueClass { return [NSString class]; }
+ (BOOL)allowsReverseTransformation { return YES; }
- (id)transformedValue:(id)value {
NSString *string = (NSString*) value;
return [string componentsSeparatedByString:@", "];
}
-(id)reverseTransformedValue:(id)value {
NSArray *array = (NSArray*)value;
return [array componentsJoinedByString:@", "];
}
@end
如果您使用绑定您的NSTokenField然后在右侧使用该变压器只需选择在Interface Builder中NSTokenField,然后在绑定检查,对于值绑定,设置“值变压器“到StringArrayTransformer
,如下所示。
我相信文件是错误的:我的雷达上的问题(http://openradar.appspot.com/11226270)。 – 2012-04-11 12:26:04