基于视图的NSOutlineView拖放突出显示不正确

问题描述:

我正在将应用程序从基于单元格的NSOutlineView迁移到基于视图的应用程序。我现在大部分都是转换过来的,但是我在将对象拖放到一行时突出显示的方式存在问题。基于视图的NSOutlineView拖放突出显示不正确

标准的全系统的亮点看起来像这样(从NetNewsWire里面):

NetNewsWire selection

我的亮点看起来大致相同,但重要的是,没有深蓝色的边框:

My own app's selection

它看起来没有这个裸体,我找不到任何我不正确切换的属性。我使用的是NSOutlineView的自定义子类,其唯一的覆盖范围是-frameOfOutlineCellAtRow:。我没有在IB中定制大纲视图(或其单元格视图)的属性。

我通过制作一个简单的测试应用程序解决了这个问题,我发现它的行为正确。我比较了IB窗格中的大纲视图和窗格,直到我发现其差异。在“视图效果”检查器中,我打开了背景层(位于Core Animation Layer部分下),一直朝上堆叠。我没有检查所有这些盒子,我得到了适当的亮点,并且它仍然正确地动画。