2012-04-19 8 views
11

を生成していますし、私はこのコードを使用して、それにページをロードしている:私はアプリを実行すると、しかし私はココアのアプリへのWebViewを追加し、それは私が私のアプリにWebViewのを追加しましたエラー

-(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を配置したウィンドウを含むペン先が、新しいAuto Layoutフィーチャーを使用しているという事実が、Lionで導入されたことが原因です。

nibファイルの自動レイアウトが有効になっていると、ウィンドウ内のすべてのNSViewオブジェクトに対して-layoutメソッドが呼び出されます。それは、その前に-layoutというメソッドを持っていたので

これはWebViewで問題が発生する方法は、ライオンでNSView APIに加え、WebViewlayout方法は、自動レイアウトを理解していません。

おそらく、当面は、ウィンドウ内のビューをレイアウトする古い自動サイズ調整マスク方法を使用することをお勧めします。 Xcodeがautolayoutを有効にしてnibファイルを作成するようになったので、あなた自身でそれを無効にする必要があります。

Use Auto Layoutチェックボックスを無効にすることで、nibファイルのファイルインスペクタで行うことができます。

interface builder inspector

あなたがこれを実行したら、ペン先のすべてのビューがビューインスペクタの[サイズ]タブで正しい自動サイズ設定を持っていることを確認する必要があります。

+0

噢ああ、私はあなたを愛しています。ありがとう。 –

3

WebViewのログメッセージは無視しても問題ありません。

0

私はWebViewの場合についてはよく分からないですが、あなたは(UILabelのサブクラスのような)任意のカスタムクラスを使用していて、メソッドを使用している場合:

  • (無効)updateConstraints { }

次に間違いなくアプリがクラッシュします。最適な解決策は、このメソッドを削除し、 'awakeFromNib'メソッドで必要な変更を書き込むことです。カスタムクラスでこのクラッシュを取得している他の誰かを助けることを願っています。

関連する問題