NSView与NSImage内部 - 为什么NSImage不会与其父视图一起移动?

时间:2011-11-11 19:17:21

标签: ruby cocoa nsview nsimage macruby

我正在编写一个简单的MacRuby应用程序。我有一个NSView,它在调用drawRect()时会在其自身内部绘制图像。

在NSView子类中我的drawRect()具有(在其他一些代码行中)

image = NSImage.imageNamed("mini_browser")
image.drawInRect( self.bounds, fromRect: self.frame, operation:NSCompositeSourceOver, fraction:1.0)

如果我通过my_view.setFrameOrigin([x,y])移动我的子类NSView,其中xy是某些值,我会得到类似下面的内容。有关为何发生这种情况的任何见解?看起来好像NSImage没有移动包围它的NSView。

参见和示例here.

1 个答案:

答案 0 :(得分:3)

你做错了。从文档中,第二个参数指定:

The source rectangle specifying the portion of the image you want to draw.
The coordinates of this rectangle must be specified using the image's own
coordinate system. If you pass in NSZeroRect, the entire image is drawn.

所以你可能想要传入NSZeroRect作为第二个参数。