2011-01-04 6 views
0

Ich habe eine lokale Eigenschaft, die ein IBOutlet zu einem WebView in der NIB ist. Für einen Benutzer, ein wirklich sehr wichtiger, ich kann sagen, es stürzte, aber keine anderen Benutzer mit dem gleichen Absturz gefunden.WebView Absturz bei Verwendung von setDrawsBackground in WakeFromNib

Der Stacktrace ich zurückkommen:

Application Specific Information: 
abort() called 
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[NSView setDrawsBackground:]: unrecognized selector sent to instance 0x101849380' 
*** Call stack at first throw: 
(
    0 CoreFoundation      0x00007fff883097b4 __exceptionPreprocess + 180 
    1 libobjc.A.dylib      0x00007fff8859f0f3 objc_exception_throw + 45 
    2 CoreFoundation      0x00007fff88363110 +[NSObject(NSObject) doesNotRecognizeSelector:] + 0 
    3 CoreFoundation      0x00007fff882db91f ___forwarding___ + 751 
    4 CoreFoundation      0x00007fff882d7a68 _CF_forwarding_prep_0 + 232 
    5 NZBVortex       0x00000001000521d8 -[SearchResultViewController awakeFromNib] + 55 

Mein Code aus dem Viewcontroller, die die WebKit WebView enthält:

-(void)awakeFromNib { 

    [self.descriptionView setDrawsBackground:NO]; 
    [[[self.descriptionView mainFrame] frameView] setAllowsScrolling:NO]; 
... 
} 

Ich habe keine Ahnung mehr, wie dieses Problem zu beheben, weil ich nicht wiedergeben kann örtlich. Es ist nur eine Ansicht Ich verwende setDrawsBackground on.

Sollte ich warten, bis eine WebViewDelegate-Methode ausgelöst wird?

Antwort

0

Das ist zu blöd. Nach dem Lesen des Webkit-Frameworks hat es wieder funktioniert. Es schien ein Wechsel zwischen Xcode-Versionen zu sein, die es gerade brach. Es ergab sich, dass eine normale nsview an der Stelle geladen wurde, an der die Webkit-Ansicht angenommen werden sollte (Standard).

0

Legen Sie das nach dem Laden des Fensters fest. Wenn Sie versuchen, es zu ändern, während das Webview aktualisiert wird, kann dies zu Problemen führen.

+0

Klingt wie eine vernünftige Erklärung. Ich habe NSViewControllers - (void) loadView überladen und die Sachen dort getan. Ich warte jetzt auf Feedback. Danke bis jetzt. –

+0

die Frage ist nur nützlich, wenn die Lösung tatsächlich gebucht wird, HIER. Ja, dies ist ein Ort, um Hilfe zu bekommen, aber der Punkt ist, eine Aufzeichnung der Lösungen zu haben, um nicht nur Ihre Probleme gelöst zu bekommen ... Wollen Sie, dass dies in Expert Exchange, lol? Kannst du erklären, dass du erwähnt hast 'Ich habe NSViewControllers überlastet '- (void) loadView'" –

+0

Das war nicht die Lösung alex grau, ich habe gerade gesagt, dass wir das loadView bereits überladen haben. Was nicht das Grundproblem dieses Absturzes war Aufgrund eines Fehlers in Xcode wurde die IB-Datei irgendwie so beschädigt, dass der Xcode vergaß, dass das WebView eine Webansicht war und somit zu einer normalen Ansicht zurückkehrte - daher ist es abgestürzt. –

0

Wissen Sie, welche Betriebssystemversion sie verwenden? Die Dokumentation besagt, dass nur OS X 10.4.11 und höher die Methode setDrawsBackground: in einem WebView unterstützt.

+0

Sie benutzen 10.6.6, was Ich benutze auch, aber ich denke, dass ExitToShell etwas angeht, aber danke für deine Antwort. –