每次运行应用程序时,我都会收到一条我不完全理解的警告:
调用 -[WebHTMLView 布局] 后布局仍需要更新。 WebHTMLView 或其父类(super class)之一可能已覆盖 -layout 而不调用 super。或者,在更新过程中某些内容可能会弄脏布局。两者都是 Cocoa Autolayout 中的编程错误。如果某些前 Cocoa Autolayout 类有一个称为布局的方法,则很可能会出现前者,但它应该被修复。
(我已经看到了这个 related question ,但提供的答案解决了其他一些问题,因此是我的问题。)当我向我的应用程序添加 WebView 时,警告就会出现。这是什么意思?我应该如何解决这个问题?
最佳答案
看来- (void)layout
是在WebHTMLView
中实现的。 WebKit 的源代码可在 Apple 的开源页面上查看。
http://www.opensource.apple.com/source/WebKit/WebKit-7534.53.11/mac/WebView/WebHTMLView.mm
在自动布局文档中,它指出,如果您在使用自动布局时需要自定义逻辑来布局 subview ,则只需实现“布局”。它还说您应该始终在自定义实现中调用[superlayout]
。 WebHTMLView
不会发生这种情况。
您的项目可能可以安全地忽略此消息。在一个空白的新项目中,同样的事情也发生在我身上。
关于macos - Mac OS X 中的自动布局警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9958576/