0

在我的应用程序中,界面中有一些 NSColorWells,但是当我调用 setColor:NSColor 时,颜色井不会改变颜色。这是方法:

- (IBAction)randomColor:(id)sender {
    int size = 255;
    int R = arc4random_uniform(size);
    int G = arc4random_uniform(size);
    int B = arc4random_uniform(size);
    NSColor *newcolor = [NSColor colorWithCalibratedRed:R green:G blue:B alpha:1.0];
    [self.colorwell setColor:newcolor];
}

问题可能是什么?

4

1 回答 1

3

TBlue 所说的:NSColor从 0.0 到 1.0,而不是 0 到 255 的分量。(另外,上限arc4random_uniform()是结果小于的值,而不是结果的最大值。)

- (IBAction)randomColor:(id)sender {
    int size = 256;
    int R = arc4random_uniform(size);
    int G = arc4random_uniform(size);
    int B = arc4random_uniform(size);
    NSColor *newcolor = [NSColor colorWithCalibratedRed:R/255.0 green:G/255.0 blue:B/255.0 alpha:1.0];
    [self.colorwell setColor:newcolor];
}
于 2013-09-28T17:52:21.003 回答