Не получается все на скриншоте MacOS 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 executeSelector:@selector(addPagesToCache) withObject:nil afterDelay:0.01]; тогда это работает, но это совсем не чистый путь.

В чем может быть проблема и как я могу это исправить?

1 ответ

Если ваше веб-представление видно (в окне), вы можете использовать CGWindowListCreateImage, чтобы получить частичное изображение окна. Это тоже обходной путь, а не идеальное решение.

Другие вопросы по тегам