我正在更新一个已经运行多年的现有项目到 High Sierra。 View 正确加载并看起来像往常一样:
然后,在我打开一个弹出窗口并再次关闭它之后, View 会四处移动、翻转事物,并且通常看起来非常疯狂:
请注意,信息标题下降到底部,左侧文本项反转顺序,日期和下拉文本翻转。发生这种情况时,鼠标交互似乎也非常困惑。
我不知道从哪里开始解决这个问题,有人有任何想法吗?
这是使用 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/