Неравномерное масштабирование NSImageView невозможно с NSAffineTransform в Cocoa?

Я уже второй день сижу в Интернете и, видимо, что-то упускаю. Я пытаюсь добиться эффекта перекоса для NSImageView. Я нашел этот вопрос о переполнении стека, что говорит о том, что это возможно. Кроме того, в Документация Apple предполагает, что NSAffineTransform с NSAffineTransformStruct разрешен.

Тем не менее: это не работает. Единственное, что я могу сделать, это NSAffineTransform rotateByDegrees, NSAffineTransform scaleXBy:foo yBy:foo. Все остальное не дает видимого эффекта. Я не получаю никаких ошибок, просто нет результата.

Итак, мой вопрос: не разрешено ли неравномерное масштабирование с использованием NSAffineTransform для приложений на OSX? И если да, то почему Xcode (по крайней мере) не предупреждает меня об этом? Или я что-то здесь упускаю (например, ошибка программирования)?

Любая помощь будет оценена по достоинству!

Код, который я использую:

- (void)drawRect:(NSRect)dirtyRect {
[super drawRect:dirtyRect];

// Drawing code here.
NSAffineTransform *rotate = [[NSAffineTransform alloc] init];
NSGraphicsContext *context = [NSGraphicsContext currentContext];

[context saveGraphicsState];
[currentImage lockFocus];
[rotate setTransformStruct:currentTransForm]; //This is filled in another routine
[rotate concat];

/* Your drawing code [NSImage drawAtPoint....]for the image goes here
 Also, if you need to lock focus when drawing, do it here.       */
CGRect imageRect = dirtyRect;

[self.image drawInRect:imageRect fromRect:NSZeroRect operation:NSCompositeCopy fraction:1.0];
[self.image unlockFocus];
[context restoreGraphicsState];
} 

person Joris    schedule 25.09.2016    source источник
comment
Но где вы применяете преобразование или поворот к изображению?   -  person ColdSteel    schedule 25.09.2016
comment
Это подкласс NSImageView. Но нашел проблему: она была из-за блокировки фокуса. Он рисовал на самом изображении, а не на экране. Это действительно работает сейчас. Спасибо, тем не менее!   -  person Joris    schedule 27.09.2016