macos - 无法在 MacOS Web View 屏幕截图中获取所有内容

标签 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 *)sender didFinishLoadForFrame:(WebFrame *)frame 函数调用的。

我只获取页面的背景,但没有文本和图像。

如果我使用 [self PerformSelector:@selector(addPagesToCache) withObject:nil afterDelay:0.01]; 调用它然后它就可以工作,但这根本不是一个干净的方法。

可能是什么问题以及如何解决它?

最佳答案

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

关于macos - 无法在 MacOS Web View 屏幕截图中获取所有内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13796062/

相关文章:

Git:在 rebase 期间防止提交

ios - 如何在具有多个分支的团队环境中处理核心数据模型版本控制

objective-c - 属性(property)不符合协议(protocol)

javascript - Android Javascript接口(interface)安全?

android - Webview 中的 Oauth 请求

Python 多处理队列 NotImplementedError macOS

swift - 在 Swift for OSX 的子类中管理事件处理

ios - 核心音频 : kAudioOutputUnitProperty_SetInputCallback on a non-remoteIO unit

android - Android Webview 上的 Appcache 不下载源

macos - 磁盘仲裁和“确定”按钮问题