objective-c - NSBezierPath : Stroke with 2 or 3 colors

标签 objective-c cocoa nsbezierpath

我正在尝试重新创建一个看起来像 Dock 上下文菜单的菜单。

我正在使用 NSBezierPath 绘制背景。正如您所看到的,Dock 菜单的边框有 3 种半透明颜色。

从内到外:

  • HSB 0;0;7% Op 91%(黑色)1 像素宽度
  • HSB 0;0;53% Op 38%(灰色)2px 宽度
  • HSB 0;0;0 Op 41%(黑色)1 像素宽度

如何将这些边框绘制到我的 NSBezierPath 上?

PS:使用模式 ([NSColor colorWithPatternImage:]) 不起作用。

最佳答案

路径只是几何图形。它们没有颜色。颜色是图形上下文的一部分,会影响描边或填充操作。

所以,是的,一种选择是绘制多条路径而不是一条路径。

另一种可能的方法是使用 NSDrawNinePartImage()带有预渲染图像(位图或矢量/PDF)。

关于objective-c - NSBezierPath : Stroke with 2 or 3 colors,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15725687/

相关文章:

ios - 如何从 iOS 字典中给定的值中查找键

ios - imageWithCGImage : GCD memory issue

swift - NSRectFill 和 NSBezierPath(rect).fill 有什么区别

objective-c - 如何使用 NSPointArray?

objective-c - 查看 NSBezierPath(s) 是否形成某种形状或图案

ios - 核心数据 : Sync data from Rest API

objective-c - 在Cocoa中,为什么直到IBAction完全执行之后才会显示文本字段?

objective-c - 为什么这个 NSTask TerminationStatus 返回 nil 值?

swift - 将 CollectionDifference 应用到 NSTableView

c# - NSTextField 下拉列表中显示建议