是什么导致CGDisplayCreateImageForRect捕获或忽略游标?

Jua*_*ank 5 cocoa screenshot objective-c nscursor

我正在使用osx捕获屏幕

capturedImage = CGDisplayCreateImageForRect(displayID, CGRectMake(point.x - 4, point.y - 4, 8, 8));
Run Code Online (Sandbox Code Playgroud)

这将返回光标下的屏幕部分.后来我正在设置一个自定义图像光标:

[[[NSCursor alloc] initWithImage:img hotSpot:NSMakePoint(4, 4)] set];
Run Code Online (Sandbox Code Playgroud)

设置光标并尝试再次捕获屏幕后,会出现此问题.光标包含在帧缓冲区中.这使得捕获的图像与我作为光标放置的图像相同.我试图隐藏光标,然后捕获屏幕,然后显示回来,但它不起作用,它也使光标闪烁.

更奇怪的是,在特定的笔记本电脑上没有捕获光标图像,而是在运行相同操作系统(Mountain Lion,Snow Leopard)的其他笔记本电脑上捕获光标图像.

什么可以导致光标包含在帧缓冲区中?有没有办法保证没有自定义光标的屏幕截图?

谢谢

Dai*_*jan 0

这取决于谁渲染光标以及它是纯硬件加速还是软件渲染。硬件与硬件之间以及操作系统之间都有所不同...按照 markk 的建议操作:将其设置为默认值