2011-07-22 91 views
1

我正在嘗試創建一個圍繞NSView的陰影,就像NSWindow用它的陰影做的那樣,但我遇到了一些困難。我創建了一個類中的NSView我創建了陰影,我使用此代碼爲壓倒一切的方法:爲NSView創建陰影 - 可可

-(void)drawRect:(NSRect)dirtyRect { 
    NSRect rect = NSInsetRect([self bounds], 10.0, 10.0); 
    NSShadow *dropShadow = [[[NSShadow alloc] init] autorelease]; 
    [dropShadow setShadowColor:[NSColor blackColor]]; 
    [dropShadow setShadowBlurRadius:5]; 
    [dropShadow setShadowOffset:NSMakeSize(0,-3)]; 

    [NSGraphicsContext saveGraphicsState]; 

    [dropShadow set]; 

    NSRectFill(rect); 

    [NSGraphicsContext restoreGraphicsState]; 

    [super drawRect:dirtyRect]; 
} 

這並沒有真正創造一個我期待陰影。

這裏是我試圖瞄準的影子...

NSWindow Shadow

而創建通過的NSView這似乎是視圖的邊界內的邊界線。任何人都有這個想法嗎?

回答

1

我遇到過類似的陰影問題,因爲NSView剪輯了它的邊界。

我修復了它,當我使用層支持視圖。我只是簡單地將超級視圖的wantsLayer屬性設置爲YES ..即[[view superView] setWantsLayer:YES]並設置查看影子[查看setShadow:dropShadow]