在awakeFromNib中使用setDrawsBackground时WebView崩溃

时间:2011-01-04 22:22:37

标签: cocoa webkit webview nsview

我有一个本地属性,它是NIB中WebView的IBOutlet。 对于一个用户来说,一个真正非常重要的用户,我可能会说它已经崩溃了但是有 没有找到任何其他用户同样崩溃。

我回来的堆栈跟踪:

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

来自ViewController的代码,其中包含WebKit WebView:

-(void)awakeFromNib {

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

我不知道如何解决这个问题,因为我无法在本地重现。 它只是一个View我使用setDrawsBackground。

我应该等待WebViewDelegate方法被触发吗?

3 个答案:

答案 0 :(得分:0)

在加载窗口后设置。如果您在更新webview时尝试更改它,可能会导致问题。

答案 1 :(得分:0)

您知道他们使用的操作系统版本吗?文档说只有OS X v10.4.11及更高版本支持WebView上的setDrawsBackground:方法。

答案 2 :(得分:0)

这太愚蠢了。在阅读webkit框架之后 它再次起作用。它似乎是Xcode版本之间的转换,它刚刚破产。 这导致在webkit视图应该是(默认)的地方加载了正常的nsview