3

每次运行我的应用程序时,我都会收到一个我不完全理解的警告:

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.

(我已经看到了这个相关的问题,但提供的答案解决了其他一些问题,因此我的问题。)一旦我将网络视图添加到我的应用程序,就会出现警告。这是什么意思,我应该如何解决这个问题?

4

2 回答 2

3

看来- (void)layout是在WebHTMLView. WebKit 的源代码可在 Apple 的开源页面上查看。

http://www.opensource.apple.com/source/WebKit/WebKit-7534.53.11/mac/WebView/WebHTMLView.mm

在 Auto Layout 文档中,它指出如果在使用 Auto Layout 时需要自定义逻辑来布局子视图,则只需要实现“布局”。它继续说您应该始终调用[super layout]您的自定义实现。不会发生这种情况WebHTMLView

https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/ApplicationKit/Classes/NSView_Class/Reference/NSView.html%23//apple_ref/occ/instm/NSView/layout

对于您的项目,可能可以安全地忽略此消息。我在一个空白的新项目上也会发生同样的事情。

于 2012-04-01T18:40:47.527 回答
0

除了注意到NSTableView拖动我发现,如果你打开NSFontManager这将始终显示此消息。不仅可以使用 Swift,还可以使用 Apple 自己的演示程序 CoreTextArcCocoa。因此,这绝对是苹果内部的一些漏洞。

于 2015-01-08T22:18:57.203 回答