#ruby #cocoa #nsview #nsimage #macruby
#ruby #cocoa #nsview #nsimage #macruby
Вопрос:
Я пишу простое приложение MacRuby. У меня есть NSView, который рисует изображение внутри себя при вызове его drawRect()
.
Внутри этого подкласса NSView my drawRect()
есть (среди некоторых других строк кода)
image = NSImage.imageNamed("mini_browser")
image.drawInRect( self.bounds, fromRect: self.frame, operation:NSCompositeSourceOver, fraction:1.0)
Если я перемещаю свой подкласс NSView через, my_view.setFrameOrigin([x,y])
где x
и y
— это некоторые значения, я получаю что-то вроде приведенного ниже. Есть понимание того, почему это происходит? Кажется, что NSImage почти не перемещается вместе с NSView, который его окружает.
Смотрите и пример здесь..
Ответ №1:
Вы делаете это неправильно. Из документации второй параметр указывает:
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 в качестве второго параметра.