NSColor有时会变异为NSColorWell

时间:2012-12-19 17:34:41

标签: objective-c cocoa nscolor

我有一个处理大量默认值的类,这是我初始化默认值的方法:

+ (void) initialize
{
    NSUserDefaults* defaults=[NSUserDefaults standardUserDefaults];
    NSData* colorData= [NSKeyedArchiver archivedDataWithRootObject: [NSColor orangeColor]];
    NSDictionary* def= @{ @"colorKey" : colorData, ... };
    [defaults registerDefaults: def];
}

然后我提供了一种用于读取默认颜色的方法和一种用于设置它的方法:

- (NSColor*) color
{
    NSUserDefaults* defaults=[NSUserDefaults standardUserDefaults];
    NSData* colorData= [defaults objectForKey: colorKey];
    return [NSKeyedUnarchiver unarchiveObjectWithData: colorData];
}

- (void) setColor: (NSColor*) color
{
    NSUserDefaults* defaults=[NSUserDefaults standardUserDefaults];
    NSData* colorData= [NSKeyedArchiver archivedDataWithRootObject: color];
    [defaults setObject:colorData forKey: colorKey];
}

但如果在color:方法内部我打印颜色,有时它是类NSColorWell,它会在应用程序内部产生麻烦。

1 个答案:

答案 0 :(得分:0)

根据{{​​3}},

NSColorWellNSControl,因此您错误地使用setColor:实例而非{{1}调用NSColorWell }。