2009-11-18 48 views

回答

35

有一个内置的方式做到这一点:

[[yourTextField cell] setBackgroundStyle:NSBackgroundStyleRaised]; 
+1

有没有办法编辑这个高亮颜色? – coneybeare 2012-11-09 17:45:13

+0

我不这么认为,这是由系统内部处理的。你需要编写自己的绘图代码来改变它。 – 2012-11-12 04:25:32

6

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

在文本绘制系统中有一个用于阴影的钩子,NSAttributedString的NSShadowAttributeName。但是对此进行测试,它似乎也会杀死子像素抗锯齿。

+0

+1使非常多的感觉。好一个。 – 2009-11-18 22:41:55

+2

虽然没有更好的解决方案吗?众多OS X文本API中的一个必须正确地执行此操作...... 我不想添加另一个标签,因为这将更难以维护,并且可能会让Voice Over用户烦恼。 – Kornel 2009-11-18 23:03:13

+1

答案涉及绘制额外的文本,不一定添加额外的标签。您可以使用自定义绘图代码创建NSTextField的自定义子类。那么,你只需要一个标签。 – 2009-11-18 23:42:56