1

ImageAndTextCell在自定义NSOutlineView. 对于那些不熟悉它的人,它是一个NSTextFieldCell在单元格文本左侧绘制图像的子类。

我有一个像 iTunes 一样的源列表,其中包含组行和下面的项目。在编辑单元格的值时,焦点环仅绘制组的前两行的一部分(见下文)。聚焦环的顶部三分之一位于第一行,底部三分之一位于第二行。

随后的行画得很好(见下面的第三行),它们都有相同的图像。这可能是什么原因造成的?(请参阅下面的更新 3。核心动画导致此行为)

在此处输入图像描述 在此处输入图像描述 在此处输入图像描述

更新 1

我几乎注释掉了所有自定义代码ImageAndTextCell,它没有任何区别(只有initdealloccopyWithZoneimagegetter 和 setter 仍然存在)。

更新 2

我几乎注释了NSOutlineView子类和我的委托类中的所有代码,以及将更新 1 中的所有代码注释掉 - 仍然是奇怪的结果。第三行不再总是完美的,但是当我删除各种功能时,绘制的焦点矩形部分发生了变化。

此外,我遇到问题的项目在我的两个大纲组中的第二个。在重命名第一组中唯一的项目时,焦点矩形在每一步都很完美。具有讽刺意味的是,这是在我的应用程序的标准操作期间无法重命名的。

接下来,我将查看我在 NIB 中的所有设置,看看那里是否有问题。

更新 3

我可以通过对窗口中的每个视图全面禁用核心动画来修复它。现在的问题变成了:如何重新启用 Core Animation 而不会让我的焦点矩形看起来很糟糕?

4

1 回答 1

0

在迁移到 Lion 之前还没有解决这个问题,我现在可以高兴地报告说,切换到基于视图可以NSOutlineView解决这个问题。奇怪的是,如果您在 IB 中为大纲视图打开 layer-backing,它会产生其他问题。但是,在取消选中这些框后,界面仍然会显示动画(并且支持比基于单元格的大纲视图更丰富的动画)。

于 2011-12-22T16:03:17.923 回答