2012-04-19 3 views
11

를 생성이고 나는이 코드를 사용하여에 페이지를로드 해요 : 나는 응용 프로그램을 실행할 때, 그러나내 코코아 응용 프로그램에 웹보기를 추가 그리고 내가 내 응용 프로그램에 웹보기를 추가 오류

-(void)awakeFromNib{ 
    NSString *resourcesPath = [[NSBundle mainBundle] resourcePath]; 
    NSString *htmlPath = [resourcesPath stringByAppendingString:@"/calendarHTML/test.html"]; 
    [[webView mainFrame] loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:htmlPath]]]; 
} 

을 이 문제를 일으키는

Layout still needs update after calling -[WebHTMLView layout]. 
WebHTMLView or one of its superclasses may have overridden 
-layout without calling super. Or, something may have dirtied 
layout in the middle of updating it. Both are programming errors in 
Cocoa Autolayout. The former is pretty likely to arise if some 
pre-Cocoa Autolayout class had a method called layout, but it should be fixed.! 

error log

무엇 : 나는 다음과 같은 오류가 발생?

답변

12

이것은 WebView를 배치 한 창을 포함하는 펜촉이 Lion에 도입 된 새로운 Auto Layout 기능을 사용하기 때문에 발생합니다.

nib 파일의 자동 레이아웃이 활성화되면 창에있는 모든 NSView 개체에 대해 -layout 메서드가 호출됩니다. 이 방법은 사자의 NSView API에 추가 된 그 전에 -layout라는 방법을했기 때문에

이것은 WebView에 문제가 발생하고 WebViewlayout 방법은 자동 레이아웃을 이해하지 않습니다.

아마 당분간 가장 좋은 해결책은 이전 자동 마스크 마스크 방법을 사용하여 창에보기를 배치하는 것입니다. Xcode가 autolayout이 활성화 된 상태로 nib 파일을 생성 할 때 직접 비활성화해야합니다.

Use Auto Layout 체크 상자를 비활성화하여 nib 파일의 파일 속성에서이 작업을 수행 할 수 있습니다. 이 작업을 수행 한 후

interface builder inspector

, 당신은 펜촉의 모든 뷰는 뷰 관리자의 크기 탭에서 올바른 자동 크기 설정이 있는지 확인해야합니다.

+0

噢 오, 사랑해. 고마워. –

3

WebViews에 대한 로그 메시지는 무시해도됩니다.

0

나는 웹보기의 경우 확실하지 오전하지만 당신은 (UILabel의의 서브 클래스 등) 사용자 정의 클래스를 사용하는 당신은 방법을 사용하는 경우

  • (무효) updateConstraints { }

그렇다면 앱이 다운됩니다. 가장 좋은 해결책은이 방법을 제거하고 'awakeFromNib'메소드에서 필요한 변경 사항을 작성하는 것입니다. 희망이 사용자 정의 클래스 에서이 충돌을 받고 다른 사람을 도와주세요.

관련 문제