-1

NSViewの背景にNSShadowを描画しようとしています。Mac OS X Tigerをサポートする必要があるため、NSGradientの代わりに使用したいと思います。どうすればいいですか?私はこれがかなり簡単であるに違いないことを知っています、そして私はいくつかの間違いをしているに違いありません。

ありがとう!

4

1 に答える 1

7

最も簡単な方法は、ビューのレイヤーの影のプロパティを設定することです。という名前の NSView* がある場合、次のviewようになります。

[[view layer] setShadowOpacity:0.5];

影の不透明度を 0 より大きい値に設定すると、影が表示されます。描画される影はビューのアルファ チャネルに似ているため、ビューに描画したものには影が付きます。ぼかし半径など、設定できるシャドウ アトリビュートは他にもいくつかあります。詳細については、CALayer のリファレンス ページをご覧ください。

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...
}
于 2012-02-19T04:40:48.987 に答える