我已经创建了一个NSTableView,它为每一行使用自定义视图。在我们的设计中,用户单击一行以执行某个操作,这会导致表格被隐藏(想象一下使用表格视图实现的浏览器书签菜单)。我希望用户能够启用编辑模式,这会导致单元格显示一个拖动手柄(iOS样式),然后可以用它来重新排序行。我已经实现了编辑模式,并实现了必要的数据源方法来启用拖放。我正在努力解决的问题是,只允许用户使用拖动手柄拖动,而不是能够拖动整行。有没有一种方法可以自定义点击测试,使我只能在鼠标位于拖动手柄上时才能启动拖动会话?
以下是编辑模式下的界面示例:

发布于 2021-03-13 05:49:07
为了便于将来参考,我找到了以下函数,我可以在NSTableView中覆盖该函数,以确定是否应该开始拖拽会话:
- (BOOL)canDragRowsWithIndexes:(NSIndexSet *)rowIndexes atPoint:(NSPoint)mouseDownPoint;
这使我可以检查鼠标按下的点是否在拖动手柄上。
https://stackoverflow.com/questions/66607061
复制相似问题