Предупреждение: я новичок Cocoa.
Я читаю "Cocoa Программирование для Mac OS X" от Hillegass.
На стр .301 написано:
Чтобы рисунок появился на изображении, а не на экране, вы должны сначала заблокировать фокус на изображении. Когда чертеж завершен, вы должны разблокировать фокус.
Код, который у меня есть, внутри -(void)mouseDragged:(NSEvent *)theEvent
для NSView
выглядит следующим образом:
[resizedImage lockFocus];
[sourceImage drawInRect: NSMakeRect(0, 0, resizeWidth, resizeHeight) fromRect: NSMakeRect(0, 0, originalSize.width, originalSize.height) operation: NSCompositeSourceOver fraction: 1.0];
[resizedImage unlockFocus];
Без блокировки/разблокировки это не сработает, но я до сих пор не понимаю, что происходит.
Я вижу, что в 2-й строке кода нет упоминания о resizedImage
, значит ли это, когда я использую lockFocus
, он уверен, что там происходит какой-либо "рисунок"? Может ли кто-нибудь объяснить это лучше?