Не получается все на скриншоте 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, чтобы получить частичное изображение окна. Это тоже обходной путь, а не идеальное решение.