窗口的陰影大致有以下幾種表現:

但是有時候這個行為不讓PM滿意,遺憾的是AppKit并沒有對外暴露接口以供我們更改窗口的shadow效果,但我找到了如下方法以供參考。
改變NSWindow的陰影效果相關的方法
OFFSET:
-(NSSize)_shadowOffset; //!< Titled (0, 8), Borderless (0, 4)
-(NSSize)_shadowOffsetForActiveAppearance:(BOOL)arg1;//!< 顧名思義
- (NSSize)_shadowOffsetForOptions:(unsigned long long)arg1;//!< 參數未研究
RIM:
- (NSDictionary*)_shadowRimInfo;//<! 比如?@{@"kCUIMeasureWindowFrameRimDensity" : @(0)}
OVERRALL:
- (NSDictionary*)shadowParameters;
/* 比如 Titled
? ??"com.apple.WindowShadowDensityActive" = "0.5";
? ? "com.apple.WindowShadowDensityInactive" = "0.3";
? ? "com.apple.WindowShadowRadiusActive" = 20;
? ? "com.apple.WindowShadowRadiusInactive" = 15;
? ? "com.apple.WindowShadowRimDensityActive" = 0;
? ? "com.apple.WindowShadowRimDensityInactive" = 0;
? ? "com.apple.WindowShadowRimStyleHardActive" = 0;
? ? "com.apple.WindowShadowRimStyleHardInactive" = 0;
? ? "com.apple.WindowShadowVerticalOffsetActive" = 24;
? ? "com.apple.WindowShadowVerticalOffsetInactive" = 8;
*/
REFRESH:?非必須
self.hasShadow = NO; self.hasShadow = YES; //!< or?[self invalidateShadow]
效果:
