将阴影(隐藏文本效果)添加到Cocoa标签而不降低文本呈现质量

Kor*_*nel 14 cocoa antialiasing shadow nstextfield

我想在Safari或iTunes中创建具有文本效果的状态栏,即隐藏文本.

例

但是,如果我只是使用Core Animation面板在Interface Builder中添加阴影,那么OS X最糟糕的文本渲染就会出现:

我的子像素

在标签上隐藏文字保持适当的子像素渲染的诀窍是什么?

Rob*_*ger 35

有一种内置的方法可以做到这一点:

[[yourTextField cell] setBackgroundStyle:NSBackgroundStyleRaised];
Run Code Online (Sandbox Code Playgroud)


Chu*_*uck 6

这是一个便宜的老技巧:你在偏移处绘制白色文本,然后在它上面绘制黑色文本.

在文本绘图系统中有一个阴影钩子,NSAttributedString的NSShadowAttributeName.但测试一下,它似乎也会杀死亚像素抗锯齿.

  • 不是有更好的解决方案吗?众多OS X文本API中的一个必须正确地执行...我不想添加另一个标签,因为这将更难维护并且可能对Voice Over用户来说很烦人. (2认同)