这对我很有用:
NSImage *iconImage = [NSImage imageNamed:@"Icon"];
NSSize iconSize = [iconImage size];
NSRect iconRect = NSMakeRect(0.0, 0.0, iconSize.width, iconSize.height);
[iconImage lockFocus];
[[NSColor colorWithCalibratedWhite:0.0 alpha:0.33] set];
NSRectFillUsingOperation(iconRect, NSCompositeSourceAtop);
[iconImage unlockFocus];
[iconImage drawInRect:iconRect
fromRect:iconRect
operation:NSCompositeSourceOver
fraction:0.75];
基本上我添加了一个黑色图层,在实际图标的顶部有33%的不透明度(用
NSCompositeSourceAtop
). 然后我画了一个75%不透明的暗图标。
[编辑:根据建议,使用NSRectFillUsingOperation(…)删除临时黑色图像
尼古拉·鲁厄
]