xcode9 - High Sierra 更新导致 NSTableView 翻转和打乱

标签 xcode9 macos-high-sierra xcode9-beta5

我正在更新一个已经运行多年的现有项目到 High Sierra。 View 正确加载并看起来像往常一样:

Normal(correct) appearance

然后,在我打开一个弹出窗口并再次关闭它之后, View 会四处移动、翻转事物,并且通常看起来非常疯狂:

Scrambled(wrong) appearance

请注意,信息标题下降到底部,左侧文本项反转顺序,日期和下拉文本翻转。发生这种情况时,鼠标交互似乎也非常困惑。

我不知道从哪里开始解决这个问题,有人有任何想法吗?

这是使用 xcode 9 beta 5 和 High Sierra Beta 6。
更新:这也在 xcode 9 GM 和 High Sierra GM Seed 中


更新

我已经确定当我在该 View 所在的 NSTableView 上调用 reloadData 时会发生这种情况。所以现在的问题似乎是如何刷新表数据而不让它变得不稳定。

最佳答案

似乎 reloadData 和 reloadDataForRowIndexes:columnIndexes: 都在 High Sierra 中产生奇怪的行为。我的解决方法如下:

-(void)refreshAllCells {
    NSMutableIndexSet* rowIndexes = [[NSMutableIndexSet alloc] init];
    if (self.myTable.numberOfRows != 0)
        [rowIndexes addIndexesInRange:NSMakeRange(0, (self.myTable.numberOfRows))];
    [self.myTable removeRowsAtIndexes:rowIndexes withAnimation:NO];
    [self.myTable insertRowsAtIndexes:rowIndexes withAnimation:NO];
}

如果有更好的答案,我仍然很乐意看到它。

关于xcode9 - High Sierra 更新导致 NSTableView 翻转和打乱,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45764331/

相关文章:

ios - 当我回到原来的VC时,音乐在歌曲上播放

swift - 在照片项目扩展中显示选定的照片

ruby - Mac High Sierra 上的 vim ruby​​ 不匹配

python - 在 Mac OS 10.13(High Sierra) 上导入 pygame 模块时遇到问题!

ios - 不支持的 Swift 版本

Xcode9:Fix All In Scope 总是被禁用

ios - Xcode 9 加载应用程序花费了太多时间

ios - gRPC-Core 编译错误 - Swift 4/Xcode 9 更新后的 Apple Mach-O 链接器错误