没有在MacOS webview截图中获取所有内容

时间:2012-12-10 06:30:17

标签: macos cocoa webview screenshot

我正在尝试使用以下代码捕获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]调用它;然后它可以工作,但这根本不是一个干净的方式。

可能是什么问题,我该如何解决?

1 个答案:

答案 0 :(得分:0)

如果您的webview可见(在窗口中),则可以使用CGWindowListCreateImage拍摄窗口的部分图像。这也是一种解决方法,而不是一个完美的解决方案。