Как мне сделать «скриншот» NSView? - PullRequest
9 голосов
/ 15 июля 2010

Мне нужно взять содержимое NSView и поместить его в NSImage для экспериментального проекта.Это возможно?Я немного погуглил, попробовал два метода, которые нашел, но на самом деле они не работали.Есть предложения?

Ответы [ 4 ]

22 голосов
/ 15 июля 2010
[[NSImage alloc] initWithData:[view dataWithPDFInsideRect:[view bounds]]];
16 голосов
/ 08 июня 2016

Из сессии 245 WWDC 2012 (переведено на Swift):

let viewToCapture = self.window!.contentView!
let rep = viewToCapture.bitmapImageRepForCachingDisplayInRect(viewToCapture.bounds)!
viewToCapture.cacheDisplayInRect(viewToCapture.bounds, toBitmapImageRep: rep)

let img = NSImage(size: viewToCapture.bounds.size)
img.addRepresentation(rep)
6 голосов
/ 10 мая 2015
let dataOfView = view.dataWithPDFInsideRect(view.bounds)
let imageOfView = NSImage(data: dataOfView)
3 голосов
/ 15 июля 2010
...