【问题标题】:NSTableCellView Drag HandleNSTableCellView 拖动句柄
【发布时间】:2021-06-10 21:26:59
【问题描述】:

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

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

【问题讨论】:

    标签: objective-c macos cocoa nstableview


    【解决方案1】:

    为了将来参考,我找到了可以在 NSTableView 中重写的以下函数,以确定是否应该开始拖动会话:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-05
      • 2016-06-16
      • 1970-01-01
      • 1970-01-01
      • 2020-09-25
      相关资源
      最近更新 更多