【问题标题】:NSColorWell doesn't change color when I call setColor当我调用 setColor 时,NSColorWell 不会改变颜色
【发布时间】:2022-05-02 20:30:43
【问题描述】:

在我的应用程序中,界面中有一些 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?

标签: objective-c macos nscolor nscolorwell


【解决方案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];
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-22
    • 2020-03-26
    • 2016-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多