NSViewのバックグラウンドにNSShadowを描画しようとしています。 Mac OS X Tigerをサポートする必要があるので、NSGradientの代わりに使用したいと思っています。どうすればいいですか?私はこれがかなり簡単でなければならないことを知っています。私は間違いをしているに違いありません。NSView内にNSShadowを描画します
ありがとうございます!
NSViewのバックグラウンドにNSShadowを描画しようとしています。 Mac OS X Tigerをサポートする必要があるので、NSGradientの代わりに使用したいと思っています。どうすればいいですか?私はこれがかなり簡単でなければならないことを知っています。私は間違いをしているに違いありません。NSView内にNSShadowを描画します
ありがとうございます!
最も簡単な方法は、ビューのレイヤーのシャドウプロパティを設定することです。あなたは* view
という名前のNSViewを持っている場合、それはのようなものだろう:0よりも大きな何かに影の不透明度を設定
[[view layer] setShadowOpacity:0.5];
影が見えるようになります。描画される影は、ビューのアルファチャンネルに似ているので、ビューに描画するものはすべて影になります。ぼかし半径など、いくつかのシャドウアトリビュートを設定できます。詳しくはCALayer reference pageをご覧ください。
あなたがNSShadowを使用する必要がある場合は、あなたの描画を行う前に、そしてちょうど影を設定します。
- (void)drawRect:(NSRect)rect
{
NSShadow *shadow = [[[NSShadow alloc] init] autorelease];
[shadow setShadowBlurRadius:3.0];
[shadow setShadowOffset:NSMakeSize(0.0, 5.0)];
[shadow setShadowColor:[NSColor colorWithCalibratedWhite:0.0 alpha:0.6]];
[shadow set];
// continue with your drawing...
}
Tigerにコアアニメーションがないので、NSShadowを使用する必要があります:( –
わからないのは残念です –
メソッド名はsetShadowBlurRadiusです。またsetShadowOffsetはNSSizeを2倍しません。 –
は、あなたの質問をしてください展開します。あなたは何を "キャスト"したいですか? –