2010-02-10 4 views
1

WebView를 호스팅하는 간단한 NSView가 있습니다.WebKit은 레이어 백업 뷰에서 렌더링하지 않습니다.

뷰 레이어를 보완하려고하면 WebView는 내용 렌더링을 중단합니다. 렌더링 된 모든 것은 스크롤 막대입니다. 편의상

, 나는 새로운 Xcode 프로젝트의 응용 프로그램 위임의 아래 applicationDidFinishLaunching 메서드에 다음 코드를 추가 : -

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두면. 웹킷을 설정하면 스크롤 막대가있는 흰색 사각형이 렌더링됩니다.

+0

addSubView는 addSubview 여야합니다. – DenNukem

답변

3

레이어 백업 WebView는 지원되지 않습니다. 레오파드 릴리스 노트에서 :

표준보기와 AppKit의 맥 OS X의 다른 코코아 프레임 워크는 특정 전문보기를 제외하고, 레오파드 레이어 백업 모드에서 작동 할 수 있습니다 제공하는 컨트롤의 대부분 레이어 백업 모드에서의 사용이 현재 지원되지 않는 WebKit WebViews 및 Quartz Composer QCViews.

(http://developer.apple.com/mac/library/releasenotes/cocoa/AppKitOlderNotes.html#Animation - 마지막의 단락 "새 애니메이션보기 시설 및 레이어 백업 된보기 그리기"섹션) 당신은 애플과 참조 rdar에 버그를 신고해야

: // 5270371를이에서 발견 메일 링리스트 게시 http://lists.apple.com/archives/Webkitsdk-dev/2007/Dec/msg00042.html.

1

이제 작동하는 것 같습니다. Mountain Lion에서 같은 코드를 사용해 보았습니다. 모두 괜찮습니다.

+0

여기와 마찬가지로, 지원되지 않는다는 점에 놀랐습니다. – Vojto

관련 문제