【发布时间】:2017-08-18 20:06:42
【问题描述】:
我正在将一个多年来运行良好的现有项目更新到 High Sierra。视图正确加载并且看起来像往常一样:
然后,在我打开一个弹出窗口并再次关闭它后,视图会移动东西,翻转东西,并且通常看起来很疯狂:
请注意,信息标题下降到底部,左侧文本项倒序,日期和下拉文本翻转。发生这种情况时,鼠标交互似乎也很混乱。
我不知道从哪里开始解决这个问题,有人有什么想法吗?
这是使用 xcode 9 beta 5 和 High Sierra Beta 6。
更新:这也在 xcode 9 GM 和 High Sierra GM 种子中
更新
我已经确定当我在该视图所在的 NSTableView 上调用 reloadData 时会发生这种情况。所以现在的问题似乎是如何刷新表格数据而不会出现问题。
【问题讨论】:
-
看起来好像某些视图改变了它的 Y 方向。我不知道新 SDK 中 NSView 的“翻转”属性是否发生了变化,但我会检查您的代码是否使用它(覆盖
isFlipped)。 -
@Sashah。嗨,我对 reloadData() 和 CAShapeLayers、NSImageView 有类似的问题。 reloadData() 影响出现在 NSImageView 中的 CAShapeLayers。看起来 NSTableView 的 reloadData() 是 High Sierra 中更普遍的问题。 stackoverflow.com/questions/46423303/…
-
我在生产 High Sierra 中看到了同样的问题
-
还在 10.13.2 更新中...
-
我找到了解决办法。在执行对 reloadData() 的调用后,我在主线程上调用以将表视图的宽度调整为 1.0(使用约束),经过短暂的延迟。然后,在又一个短暂的延迟之后,我恢复了约束更改。当您看到反转的文本时,有一个非常小的时刻,但除此之外它有效。
标签: xcode9 macos-high-sierra xcode9-beta5