我有一个问题,我认为可以解决一些hackery,但我很好奇,如果有一个更简单的方法来完成工作,而不必做所有这些.
我有一堆NSView(层支持,如果它以某种方式帮助提供一些更好的解决方案),如下所示:

这里的事情是,它本质上是一个菜单,但是悬停敏感.如果用户将鼠标悬停在较低级别视图的某个公开部分上,我需要根据视图的内容执行操作.它是一个动态系统,因此像这样堆叠的菜单项的数量可能会改变,使静态计算更加困难.正如您所看到的,它们基本上都是第一个项目的副本(形状方面),但随后通过简单的变换旋转进一步向下旋转.
我对SO社区的问题是你们都认为获得mouseEntered的最佳方法是什么:和mouseExited:只针对这些视图的字面可见部分的事件?
我试图做的是在这些视图的visibleRect部分使用NSTrackingArea,这听起来比在这种情况下更实用.实际上,visibleRect似乎始终对所有这些人都是"可见的".除了部分重叠的NSView之外,没有任何东西被明确阻止或隐藏.所有这一切都是我从所有视图中得到一个垃圾邮件控制台,一旦鼠标进入他们的矩形就会尖叫.
我正在考虑的是制作每个菜单项的子NSView,并让每个菜单项负责跟踪区域......每个菜单项都有可以报告的右侧和底侧的"条带"视图,但这仍然是一点点黑客,是icky.
有没有人有更好的主意?也许是经验之一?
谢谢!