[NSColorWell setColor:NSColor]

В моем приложении у меня есть некоторые 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];
}

В чем может быть проблема?

1 ответ

Решение

Что сказал 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];
}
Другие вопросы по тегам