我已经更新到macOS High Sierra,现在我的项目出现了意想不到的问题,这是macOS Sierra之前没有遇到的问题。
我有自定义NSImageView,在此NSImageView
中拖放图像后,我可以使用CAShapeLayers
和mouseDown
,mouseDragged
函数在图像顶部绘制矩形。然后,我可以计算矩形内部的图像部分的强度。强度数据在数组中,此数组用于NSTableView
。 NSImageView
和NSTableView
位于同一NSView
。强度计算在@IBAction
函数中。更新后,当我按下按钮计算强度时,矩形移动到图像下方(在它们停留在顶部之前)。我发现,这种效果的原因是reloadData()
表的功能。当此功能关闭时,矩形停留在图像的顶部。
有人可以解释这些奇怪的事情以及我能做些什么来修复它?按下计算按钮后,我需要将矩形保持在图像的顶部。
更新
我已更新High Sierra,但NSTableView的reloadData()
与以前消失CAShapeLayers
具有相同的效果。
答案 0 :(得分:1)
升级到High Sierra之后我遇到了类似的问题,我添加到NSImageView的子视图不再显示了。
要解决此问题,我按照this link的建议将以下行添加到我的代码中(以编程方式添加了NSImageView):
imageView.wantsLayer = true