cocoa - 如何在 Mac OS X 的 Cocoa 上绘制文本内阴影

标签 cocoa core-graphics quartz-graphics

如何在 Mac OS X 的 Cocoa 中在文本上绘制内部阴影?

我对 NSView 进行子类化,以创建一个带有渐变背景和内部阴影文本标题的占位符控件。

stackoverflow 上所有当前 Core Graphics 的答案似乎都解释了在 Cocoa Touch 上绘制文本阴影。

最佳答案

你可能想得太复杂了。如果我解决了你的问题,你真正想做的唯一一件事就是设置文本样式。然后只需使用以下命令即可:

[[object cell] setBackgroundStyle:NSBackgroundStyleRaised];

其中 object 是 NSTextField 类的实例。

这会为你处理一切。然后可以通过使用带有 NSGradient 的自定义 View 来达到渐变背景。请参阅here

优点:您拥有 NSTextField 的正确实例,无需对其进行子类化或执行其他不需要的操作,例如自行在 NSView 的子类中实现 NSTextField 所做的所有操作。

关于cocoa - 如何在 Mac OS X 的 Cocoa 上绘制文本内阴影,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8752425/

相关文章:

Objective-C NSWindow 从键中删除窗口

macos - 如果系统偏好设置默认声音发生更改,如何获取通知

cocoa - MGTwitterEngine - 最喜欢的推文

swift - UIImageView 在没有 Alpha 的情况下混合颜色

ios - Image Changing CALayer 核心动画

c++ - 在 Quartz 插件中找到左上角

objective-c - 什么时候应用程序状态属于核心数据而不是 NSUserDefaults?

objective-c - 获取数据图像进行处理的最佳方式

ios - CGContextSetShadowWithColor 将阴影放在转换阴影的文本之上

ios - 设置单元格圆角和边框宽度使表格 View 滚动速度极慢