我想在Safari或iTunes中创建具有文字效果的状态栏,即隐藏文字。在不降低文本渲染质量的情况下向Cocoa标签添加阴影(隐藏文字效果)
但是,如果我只是在Interface Builder中使用的Core Animation面板中添加阴影,OS X的最坏的文本渲染踢:
有什么手段来得到凹陷的文本标签和保持适当的子像素渲染?
我想在Safari或iTunes中创建具有文字效果的状态栏,即隐藏文字。在不降低文本渲染质量的情况下向Cocoa标签添加阴影(隐藏文字效果)
但是,如果我只是在Interface Builder中使用的Core Animation面板中添加阴影,OS X的最坏的文本渲染踢:
有什么手段来得到凹陷的文本标签和保持适当的子像素渲染?
有一个内置的方式做到这一点:
[[yourTextField cell] setBackgroundStyle:NSBackgroundStyleRaised];
这是一个便宜的老技巧:你用白色在偏移处绘制文本,然后在其上绘制黑色文本。
在文本绘制系统中有一个用于阴影的钩子,NSAttributedString的NSShadowAttributeName。但是对此进行测试,它似乎也会杀死子像素抗锯齿。
+1使非常多的感觉。好一个。 – 2009-11-18 22:41:55
虽然没有更好的解决方案吗?众多OS X文本API中的一个必须正确地执行此操作...... 我不想添加另一个标签,因为这将更难以维护,并且可能会让Voice Over用户烦恼。 – Kornel 2009-11-18 23:03:13
答案涉及绘制额外的文本,不一定添加额外的标签。您可以使用自定义绘图代码创建NSTextField的自定义子类。那么,你只需要一个标签。 – 2009-11-18 23:42:56
有没有办法编辑这个高亮颜色? – coneybeare 2012-11-09 17:45:13
我不这么认为,这是由系统内部处理的。你需要编写自己的绘图代码来改变它。 – 2012-11-12 04:25:32