NSWindow私有方法調整窗口的陰影

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


NSWindow默認陰影效果

但是有時候這個行為不讓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]


效果:

點擊上面圖片內容查看原圖
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容