我正在尝试使用以下代码捕获cocoa webview的屏幕截图:
NSBitmapImageRep *bitmapRepRight = [[webView mainFrame].frameView bitmapImageRepForCachingDisplayInRect:cacheRect];
[[[webView mainFrame].frameView documentView] layout];
[[webView mainFrame].frameView cacheDisplayInRect:cacheRect toBitmapImageRep:bitmapRepRight];
return [bitmapRepRight CGImage];
此代码从 - (void)webView :( WebView *)发送者didFinishLoadForFrame:(WebFrame *)框架函数调用。
我只获得了页面的背景,但没有文字也没有图像。
如果我使用[self performSelector:@selector(addPagesToCache)withObject:nil afterDelay:0.01]调用它;然后它可以工作,但这根本不是一个干净的方式。
可能是什么问题,我该如何解决?
答案 0 :(得分:0)
如果您的webview可见(在窗口中),则可以使用CGWindowListCreateImage拍摄窗口的部分图像。这也是一种解决方法,而不是一个完美的解决方案。