2011-04-21 74 views
1

我在自定义NSOutlineView中使用苹果教程中的一个略有修改的ImageAndTextCell。对于那些不熟悉它的人来说,它是一个NSTextFieldCell子类,它在单元格文本的左侧绘制图像。导致部分源列表焦点环的核心动画

我有一个类似iTunes的源列表,包括组行和下方的项目。在编辑单元格的值时,对焦环仅为组的前两行绘制(见下文)。对焦环的前三分之一画在第一排,最下面的三分之一画在第二排。

后续的行很好(见下面的第三行),它们都具有相同的图像。什么可能导致这个? (见下面3更新。核心动画是导致此行为)

enter image description hereenter image description hereenter image description here

更新1

ImageAndTextCell注释掉几乎所有的自定义代码,它并没有区别(只有init,dealloc,copyWithZoneimage吸气剂和二道滤器依然存在)。

更新2

我评论的NSOutlineView子几乎所有的代码,我的代理类,以及保持从更新1中的所有代码注释掉了 - 还是奇怪的结果。第三行不再总是完美的,但是当我删除各种功能时,绘制的焦点矩形部分移位。

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

接下来,我会看看我在NIB中的所有设置,看看有没有什么东西可能会被打破。

更新3

我能够全线禁用核心动画在我的窗前,每个视图进行修复。现在的问题已经变成:我如何重新启用核心动画而不会让我的焦点看起来糟糕透顶?

+0

是行中对行中不同数据集的行为是否一致? – govi 2011-04-21 19:04:10

+0

当我将上面的'第三行文本'移动到'第二行文本'的位置时,它会像前面的'第二行文本'那样错误地绘制。内容似乎没有区别。 – Dov 2011-04-21 19:06:36

+0

我刚刚在试验聚焦环时遇到了这个问题。 Lion中也有一个焦点环的bug。 – 2013-01-17 13:37:58

回答

0

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