我一直试图在几周内做到这一点,虽然我通过失火学到了很多东西,但此时我只需要一个解决方案。问题在于解压缩包含在Cocoa中的看似重叠的图形和UI API,其中许多产生类似的效果,但具有独特的限制,我经常在投入实施数小时后才发现这些限制。
我是Cocoa的新手,但不是编程,我正在尝试创建一个带有非常自定义UI的Mac应用程序 - 想想Capo,Garageband或Billings。我窗口中的一个视图将显示一个有序的子视图列表,每个子视图都执行大量自定义绘图,每个子视图都必须支持“选定”状态和拖动重新排序。子视图不需要支持被拖出超级视图。
理想情况下,拖动会在发生时给出动画反馈,推动相邻的兄弟视图以腾出空间,例如:工具栏图标或Safari书签栏。麻烦的是,我似乎无法找到合适的技术来实现这一目标。我已经在NSCollectionView中将子视图作为NSView子类完成,并且在类似自定义CollectionView的NSView中也作为CALayers,并且似乎都没有提供完美的解决方案。也就是说,第一个选项似乎是两个中更好的处理鼠标事件。
我还没有尝试过将其作为TableView这样做,而且我不想在没有任何迹象的情况下沿着这条路走下去。广泛的谷歌搜索只显示在启用CoreAnimation的重新排序或拖动上没有任何最新资源。作为OS X UI的标准功能,我觉得这应该更容易!
任何人对这项工作的正确工具的任何帮助将不胜感激。 TIA。