我正在尝试创建自定义按钮外观。
根据我收集的内容,NSButtonCell
执行绘图,所以我实际上应该覆盖它。
但问题是,我的CustomButton类还有其他内容,如NSImage
,mIsMouseOver
等。目前,绘图是在CustomButton类中完成的,但我想将其移到单元格中。
问题是,无论如何我可以从customButtonCell类访问customButton类中的图像,以便我可以使用[image drawInRect:...]
吗?
此致 韩
答案 0 :(得分:1)
通常的方法是将数据存储在NSCell子类中。基本单元类甚至具有 - (id)图像属性,因此,在查询图像时,您的按钮类应调用[[self cell] image]
。
实际上,由于你是NSButton的子类,它包含你需要的所有东西,只需覆盖单元格的绘图方法。如果你需要一个额外的属性 - 在单元格中定义它,包装在控件中。
答案 1 :(得分:1)
您的单元格的drawWithFrame:(NSRect)frame inView:(NSView *)controlView
方法包含对正在绘制的NSView的引用,您可以从中访问该视图的属性(例如图像)。