4

我已经更新到 macOS High Sierra,现在我的项目中出现了意想不到的问题,这些问题在 macOS Sierra 中从未见过。我有自定义 NSImageView 并在其中拖放图像后,我可以使用and函数NSImageView在图像顶部绘制矩形。然后,我可以计算矩形内图像部分的强度。强度数据在数组中,该数组用于. 并且在同一个。强度计算在函数中。更新后,当我按下计算强度的按钮时,矩形移动到图像下方(在它们停留在顶部之前)。我发现,这种效果的原因是 CAShapeLayersmouseDownmouseDraggedNSTableViewNSImageViewNSTableViewNSView@IBActionreloadData()表的功能。当此功能关闭时,矩形将停留在图像的顶部。

有人可以解释这些奇怪的事情以及我能做些什么来解决它吗?按下计算按钮后,我需要将矩形保留在图像顶部。

更新 我已经更新了 High Sierra,但是reloadData()对于 NSTableView 来说,消失的效果CAShapeLayers和以前一样。

4

1 回答 1

1

升级到 High Sierra 后我遇到了类似的问题,我添加到 NSImageView 的子视图不再显示。

为了解决这个问题,我在我的代码中添加了以下行(以编程方式添加了 NSImageView),正如此链接所推荐的:

    imageView.wantsLayer = true
于 2018-05-21T15:50:20.707 回答