NSBezierPath 的 strokeRect: 是不是总是绘制透明矩形? (可可 OSX)

Posted

技术标签:

【中文标题】NSBezierPath 的 strokeRect: 是不是总是绘制透明矩形? (可可 OSX)【英文标题】:Does strokeRect: of NSBezierPath always draw a transparent rect? (Cocoa OSX)NSBezierPath 的 strokeRect: 是否总是绘制透明矩形? (可可 OSX) 【发布时间】:2010-04-02 17:55:33 【问题描述】:

我正在尝试为我创建的图像视图创建一个自定义选择框,并且我正在尝试使用 NSBezierPath 中的 strokeRect: 但它似乎总是透明的。调用方法 set 来设置 blackColor 的颜色,然后还尝试使用 olorWithDeviceRed:green:blue:alpha: 但无论我尝试了什么,创建的矩形似乎总是透明的。有没有更好的方法来绘制一个空矩形?

【问题讨论】:

【参考方案1】:

你看到strokeRect:的边界了吗?

+strokeRect: 所做的只是绘制由矩形定义的外边缘。如果您还想填写该矩形,则需要致电[NSBezierPath fillRect:rect]。在这种情况下,它将使用当前的填充颜色。在颜色上调用 -set 会设置笔触和填充颜色,但如果您想单独设置它,您可以在颜色对象上调用 -setFill

【讨论】:

以上是关于NSBezierPath 的 strokeRect: 是不是总是绘制透明矩形? (可可 OSX)的主要内容,如果未能解决你的问题,请参考以下文章

使 NSBezierPath 保持相对于 windowResize 上的 NSView

删除填充的NSBezierPath

以编程方式绘制圆角矩形[重复]

canvas基础

canvas绘图详解-04-矩形

canvas初探3:画方画圆