这个很难弄清楚,但它是这样的:首先创建了一个只有WebView 的新项目,看看我是否可以重现它。我无法在那里复制它。
我切换回我的项目并将麻烦的 xib 替换为仅包含 WebView 的新 xib。我再次无法重现该问题。
接下来是更耗时的任务,即在新的 xib 中重新创建完整的 UI。这个 xib 也无法重现问题。问题解决了!
但是是什么引发了问题?盯着两个xib的diff看了一会儿后,我注意到了一点:
<customView alphaValue="0.99999999999999989" translatesAutoresizingMaskIntoConstraints="NO" id="eEn-AF-z0I">
界面生成器仍然在Appearance 部分显示Alpha 的1。仅将其更改为其他内容并返回1 修复了xib:
<customView translatesAutoresizingMaskIntoConstraints="NO" id="eEn-AF-z0I">
我仍然不确定是什么改变了这个值,但至少这解决了我的问题。同样有意义的是,与图层相关的属性会导致此重绘问题。
不支持层支持的 WebView。来自 Leopard 发行说明:
AppKit 和 Mac OS X 的其他 Cocoa 框架提供的大多数标准视图和控件都能够在 Leopard 中以层支持模式运行,但某些专用视图除外,例如 WebKit WebViews 和 Quartz Composer QCViews,它们的使用目前不支持 layer-backed 模式。
http://developer.apple.com/mac/library/releasenotes/cocoa/AppKitOlderNotes.html#Animation - “新视图动画工具和支持图层的视图绘图”部分的最后一段