2012-05-08 20 views
0

スライダーの動きでNSBoxに色を塗りたい。 次のコードを使用しています。nssliderの動きでnsboxの色を塗りつぶす方法は?

-(IBAction)slider1move:(id)sender { 
    [self.box setFillColor:[NSColor colorWithCalibratedRed: ([self.slider1 floatValue])/255.0 green:0.0 blue:0.0 alpha:0.0]]; 
} 

私を修正してください。私は3つのスライダーが私のアプリケーションにあり、それぞれが赤、緑、青の色に対応しています。

スライダの現在の値に基づいて、スライダの移動時にボックス内の色を塗りつぶすにはどうすればよいですか? スライダーが50の値を示しているように、ボックスが赤色の場合は、赤色で半分になるはずです。

答えて

2

まず、あなたがNSBoxさんに記載されている要件を満たしてきましたsetFillColor:ドキュメント作成:受信機のボックスタイプ(boxType)がNSBoxCustom であり、その境界線の種類(borderTypeが)NSLineBorderのときのみ

機能。

これが問題ではないとすれば、新しい色で再描画するには、ボックスにsetNeedsDisplay:と電話する必要があります。

+0

この呼び出しをメソッドのsetNeedsDisplayに:動作しません。 – user1295948

+0

5月10日の@Justin Booの答えは実際の問題を捉えます。 'setNeedsDisplay:'は必要ありません。 –

+0

[このサンプルコード](https://github.com/SmilinBrian/BoxColorMule)を試してください –

3

あなたの色を見てください。完全に透明な色を設定してください。アルファは0.0です。色は変わりません。

このようなアルファ1.0にあなたの色を変更

[NSColor colorWithCalibratedRed: ([self.slider1 floatValue])/255.0 green:0.0 blue:0.0 alpha:1.0] 
関連する問題