我必须添加对我的OSX应用程序截图的能力,但是Apple演示只会给我整个屏幕图像,我只想要我的应用程序窗口图像.
我的代码是:
NSInteger displaysIndex = 0; if(displays != nil) { free(displays); } CGError err = CGDisplayNoErr; CGDisplayCount dspCount = 0; /* How many active displays do we have? */ err = CGGetActiveDisplayList(0,NULL,&dspCount); /* If we are getting an error here then their won't be much to display. */ if(err != CGDisplayNoErr) { return; } /* Allocate enough memory to hold all the display IDs we have. */ displays = calloc((size_t)dspCount,sizeof(CGDirectDisplayID)); // Get the list of active displays err = CGGetActiveDisplayList(dspCount,displays,&dspCount); /* Make a snapshot image of the current display. */ CGImageRef image = CGDisplayCreateImage(displays[displaysIndex]);
我应该在代码中改变什么,所以我只能收到我的应用程序的窗口?
解决方法
简单.
NSImage *captureImage = [[NSImage alloc] initWithData:[self.view dataWithPDFInsideRect:[self.view bounds]]];
请检查并让我知道.这是捕获的当前活动窗口.