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