WebKit не будет отображаться в представлении со слоем - PullRequest
1 голос
/ 10 февраля 2010

У меня есть простой NSView, который содержит WebView.

Когда я пытаюсь сделать слой представления резервным, WebView перестает отображать содержимое - все, что он отображает, - это полосы прокрутки.

Для простоты я добавил следующий код в метод applicationDidFinishLaunching делегата приложения нового проекта xcode: -

NSView* view = [window contentView];

[view setWantsLayer:YES]; // This is the problematic line!

WebView* webView = [[WebView alloc] initWithFrame:NSMakeRect(0,0,400,400)];
WebFrame* mainFrame = [webView mainFrame];
[view addSubview:webView];
[mainFrame loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.google.com"]]];

Если я опускаю setWantsLayered, WebKit отображает веб-страницу. Если я его установлю, WebKit просто визуализирует белый квадрат с полосами прокрутки.

Ответы [ 2 ]

3 голосов
/ 11 февраля 2010

Слои с поддержкой WebView не поддерживаются.Из примечаний к выпуску Leopard:

Большинство стандартных представлений и элементов управления, предоставляемых другими платформами Какао в AppKit и Mac OS X, способны функционировать в режиме на уровне слоев в Leopard, за исключением некоторых специализированныхпредставления, такие как WebKit WebViews и Quartz Composer QCViews, чье использование в режиме с поддержкой слоев в настоящее время не поддерживается.

(http://developer.apple.com/mac/library/releasenotes/cocoa/AppKitOlderNotes.html#Animation - последний абзац «Новые средства просмотра анимации» иСекция Layer-Backed View Drawing ")

Вы должны сообщить об ошибке в Apple и указать rdar: // 5270371, как указано в этом сообщении списка рассылки http://lists.apple.com/archives/Webkitsdk-dev/2007/Dec/msg00042.html.

1 голос
/ 20 июня 2013

Теперь это похоже на работу. Я только что попробовал тот же код на Mountain Lion, и все в порядке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...