macos - Mac OS X 中的自动布局警告

标签 macos cocoa webview autolayout

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

调用 -[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 不会发生这种情况。

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

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

关于macos - Mac OS X 中的自动布局警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9958576/

相关文章:

macos - 如何确定已拔除的USB设备的LocationID?

macos - NSAlert 高于 NSPopover

macos - OS X Terminal.app 中的 Command 键作为 Meta 键

xcode - OS X 在 swift 中从 xib 添加 subview

android - WebView 在从 ICS 的下一个屏幕导航回 Webview 时显示透明颜色 (Android 4)

mysql - mysql.server 启动时出现 PID 错误?

cocoa - 核心数据使用大量内存

objective-c - 重用 CGContext 导致奇怪的性能损失

android - 在 webview 组件上选择证书 ssl

java - 在 Android WebView 的 loadUrl 和 PostUrl 之间保持 session