2

几周以来,我一直在努力解决这个问题,虽然我从失败中学到了很多东西,但在这一点上,我只需要一个解决方案。问题在于解压缩 Cocoa 中包含的看似重叠的图形和 UI API,其中许多会产生类似的效果,但具有独特的局限性,我经常在投入大量时间实施后才发现这些局限性。

我是 Cocoa 的新手,但不是编程新手,我正在尝试创建一个具有非常定制的 UI 的 Mac 应用程序——想想 Capo、Garageband 或 Billings。我窗口中的一个视图将显示一个有序的子视图列表,每个子视图都进行大量自定义绘图,并且每个视图都必须支持“选定”状态和拖动重新排序。子视图不需要支持被拖到其父视图之外。

理想情况下,拖动会在发生时给出动画反馈,推动相邻的同级视图以腾出空间,例如工具栏图标或 Safari 书签栏。问题是,我似乎无法找到正确的技术包来做到这一点。我已经将子视图作为 NSCollectionView 中的 NSView 子类以及自定义 CollectionView-like NSView 中的 CALayers 完成,但似乎都没有提供完美的解决方案。也就是说,第一个选项似乎在两者中更好,因为它对鼠标事件的出色处理。

我还没有尝试将其作为 TableView 执行,并且我不想在没有任何迹象的情况下沿着这条路走下去,我在正确的轨道上。广泛的谷歌搜索仅表明在启用 CoreAnimation 的重新排序或拖动方面没有任何最新资源。作为 OS X UI 的标准功能,我觉得这应该更容易!

任何人对这项工作的正确工具的任何帮助将不胜感激。TIA。

4

0 回答 0