我正在开发一个使用 SDK 10.7 作为部署目标的 Mac OS X 应用程序。NSScrollView 包含图像缩略图的水平列表。ScrollView 中心的缩略图表示所选图像,该图像以全尺寸显示在 ScrollView 下方。这与 Finder Cover-Flow 的工作方式非常相似,除了我的应用程序中的图像不会流动而只是滚动离开。
我想将滚动限制为仅在缩略图恰好位于中心时停止。NSView 方法adjustScroll:是无解的。这将禁用“平滑”滚动并让 ScrollView 从一个缩略图跳到下一个。
我需要某种动作/回调来告诉我 ScrollView 完成了滚动。我可以检查位置是否正常(如果缩略图在中心)或向后/向前滚动到最近的缩略图。但是 NSScrollView 不提供这样的回调。
我试图观察 ScrollViews contenView 框架的变化。每当框架发生变化时,我都会启动一个计时器。如果计时器在触发之前没有重新启动,我假设滚动停止。这不是很好。如果滚动只停止很短的时间(例如,因为手指被移动以进行另一个滑动手势),下一次滚动会干扰位置的校正。
在 iOS 下使用 UIScrollView 可以毫无问题地解决这个任务。NSScrollView的类似分页功能将是一个完美的解决方案。
有谁知道如何解决这个问题?
非常感谢!