NSTableCellView 拖动句柄

NSTableCellView Drag Handle

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

这是编辑模式下的界面示例:

为了将来参考,我发现以下函数可以在 NSTableView 中覆盖,以确定是否应开始拖动会话:

- (BOOL)canDragRowsWithIndexes:(NSIndexSet *)rowIndexes atPoint:(NSPoint)mouseDownPoint;

这让我可以检查鼠标下点是否在拖动手柄上。