NSTextField / NSTextFieldCel上的文本中的阴影

时间:2013-02-12 21:03:20

标签: objective-c cocoa core-graphics shadow nstextfield

我已经尝试了一两天尝试在NSTextField的文本中绘制阴影(并使前景色透明,所以你看到的只是文本中的阴影)。我还没有达到理想和实用的结果。我唯一的成功就是将文本转换为NSBezerPath,从NSTextFieldCell的框架中减去它,并使用setClip方法进行裁剪(addClip在这种情况下不够用,它留下了背景画)。不幸的是,将文本转换为NSBezerPath会使文本的边缘看起来呈锯齿状并过度拉直。有没有一种有效且体面的方法来使用CoreGraphics蒙版和剪辑来实现这一点,因为我无法实现这一点。

我要寻找的非常类似的效果是在Xcode IDE中,如果你没有打开调试会话并转到调试器导航器,它会在子类NSTextField中显示“No Debug Session”带有阴影的文本。这几乎就是我所追求的。任何有关如何开始以及如何做到这一点的见解都会很棒。

粘贴垃圾箱我当前的代码(工作,但次优,和不工作):http://pastebin.com/4pTv8ZWm

1 个答案:

答案 0 :(得分:1)

你在IB中玩过NSTextField的shadow属性吗?使用alpha透明度的正确混合对文本稍微偏移阴影效果,你应该能够非常接近。