2012-02-19 3 views
-2

NSView의 배경에 NSShadow를 그리려하고 있습니다. Mac OS X Tiger를 지원해야하므로 NSGradient를 대신 사용하고 싶습니다. 어떻게해야합니까? 나는 이것이 꽤 쉬워야한다는 것을 알고 있으며 나는 실수를 저 지르지 않고있다.NSView 안에 NSShadow 그리기

감사합니다.

+2

, 당신의 질문을하시기 바랍니다 확장 : 당신이 당신의 그림을하기 전에

당신이 NSShadow를 사용해야하는 경우

후 단지 그림자를 설정할 수 있습니다. 그림자를 "캐스팅"하고 싶습니까? –

답변

6

가장 쉬운 방법은보기 레이어의 그림자 속성을 설정하는 것입니다. 0 그림자가 눈에 보이는 것보다 더 큰 뭔가 그림자의 불투명도를 설정

[[view layer] setShadowOpacity:0.5]; 

: 당신이 view라는 이름의 NSView의를 *이 있다면, 그것은 뭔가를 할 것입니다. 그려지는 그림자는보기의 알파 채널과 비슷할 것이므로보기에 그려지는 것은 그림자가 생깁니다. 흐림 반경과 같이 설정할 수있는 몇 가지 다른 그림자 속성이 있습니다. 자세한 내용은 CALayer reference page을보십시오.

- (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... 
} 
+0

타이거에 Core Animation이 없기 때문에 NSShadow를 사용해야하는 이유가 있습니다 : ( –

+0

미안합니다. –

+0

메소드 이름은 setShadowBlurRadius입니다. 또한 setShadowOffset은 NSSize가 아닌 double을 취합니다. . –