我正在嘗試向MAC應用程序上的NSImageView添加陰影。目標C - OS X - 將NSShadow添加到NSImageView中問題
我創建了一個自定義的NSImageView類 「ShadowView.h」 和修改的drawRect:像這樣:
- (void)drawRect:(NSRect)dirtyRect {
[super drawRect:dirtyRect];
NSShadow *shadow = [[NSShadow alloc] init];
[shadow setShadowBlurRadius:5];
[shadow setShadowOffset:NSMakeSize(30.0, 3.0)];
[shadow setShadowColor:[NSColor redColor]];
[shadow set];
[self setWantsLayer:YES];
[self setShadow:shadow];
}
但是什麼也沒有發生。另外,當我調試時,我可以看到上面的代碼被調用。我看着這個問題從5年前,但它似乎不再工作
Adding a Shadow to a NSImageView
謝謝!
請問您的看法的上海華盈也已啓用層的後盾?我使用此代碼構建了一個快速測試應用程序,除非超級視圖_also_具有圖層支持,否則陰影會被截斷到視圖邊界的邊緣。也許有一個影子,但它不在你的圖像視圖中,並且超級視圖沒有圖層? – Arclite
此外,這可能是一個愚蠢的問題,你有圖像視圖中的圖像? 「NSImageView」的陰影是根據圖像的alpha值計算的,所以如果沒有圖像,就沒有陰影。 – Arclite
@Arclite問題是我的超級視圖沒有啓用圖層支持!我只是添加了[self.view wantsLayer:YES]到我的viewController viewDidLoad。如果你讓它成爲答案,我可以接受它是正確的。謝謝。 –