【发布时间】:2020-02-11 16:12:52
【问题描述】:
在我的 macOS 项目中,我有一个带有单列的 NSTableView,其行可以通过拖放重新排序。
当元素太多并且启用滚动时,拖放可以使表格在接近底部或顶部时滚动。这种行为是开箱即用的,我不必启用或配置它。
问题是当我开始拖动一个元素并将鼠标向上或向下移动几个像素时,滚动移动真的太快了。桌子立即到达顶部或底部,没有减速的可能性。真的很郁闷。
我不知道在哪里进行干预或覆盖什么来自定义此行为。我在文档中没有看到任何与我可以更改的“自动”滚动相关的内容。在这一点上我真的一无所知。
向我建议的一种解决方法是添加一个sleep() 调用:
func tableView(_ tableView: NSTableView, validateDrop info: NSDraggingInfo, proposedRow row: Int, proposedDropOperation dropOperation: NSTableView.DropOperation) -> NSDragOperation
但是滚动变得有点不稳定,我很想了解正确的操作方式。
提前感谢任何提示或指向相关文档的指针。
【问题讨论】:
标签: swift macos cocoa drag-and-drop nstableview