我ImageAndTextCell
在自定义NSOutlineView
. 对于那些不熟悉它的人,它是一个NSTextFieldCell
在单元格文本左侧绘制图像的子类。
我有一个像 iTunes 一样的源列表,其中包含组行和下面的项目。在编辑单元格的值时,焦点环仅绘制组的前两行的一部分(见下文)。聚焦环的顶部三分之一位于第一行,底部三分之一位于第二行。
随后的行画得很好(见下面的第三行),它们都有相同的图像。这可能是什么原因造成的?(请参阅下面的更新 3。核心动画导致此行为)
更新 1
我几乎注释掉了所有自定义代码ImageAndTextCell
,它没有任何区别(只有init
、dealloc
、copyWithZone
和image
getter 和 setter 仍然存在)。
更新 2
我几乎注释了NSOutlineView
子类和我的委托类中的所有代码,以及将更新 1 中的所有代码注释掉 - 仍然是奇怪的结果。第三行不再总是完美的,但是当我删除各种功能时,绘制的焦点矩形部分发生了变化。
此外,我遇到问题的项目在我的两个大纲组中的第二个。在重命名第一组中唯一的项目时,焦点矩形在每一步都很完美。具有讽刺意味的是,这是在我的应用程序的标准操作期间无法重命名的。
接下来,我将查看我在 NIB 中的所有设置,看看那里是否有问题。
更新 3
我可以通过对窗口中的每个视图全面禁用核心动画来修复它。现在的问题变成了:如何重新启用 Core Animation 而不会让我的焦点矩形看起来很糟糕?