【问题标题】:How Do you Drag-Move a Row in NSTableView?你如何在 NSTableView 中拖动移动一行?
【发布时间】:2013-06-05 12:10:15
【问题描述】:

如果它是一个iOS 项目,让用户拖动移动选定的行会相对容易。我觉得有点像

- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath{
    return UITableViewCellEditingStyleNone;
}

- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath {
    return YES;
}

- (BOOL)tableView:(UITableView *)tableview canMoveRowAtIndexPath:(NSIndexPath *)indexPath {
    return YES;
}

- (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)fromIndexPath toIndexPath:(NSIndexPath *)toIndexPath {
    // ...
}

如果我有一个基于单元格的表,你如何在Mac OS中使用NSTableView(不是iOS中的UITableView)? Apple, Inc. 的一个允许用户拖动项目的示例项目是 image-browser,它并没有太大帮助,因为它不涉及 NSTableView 控件。你使用 canDragRowsWithIndexes:atPoint 吗?我没有通过 canDragRowsWithIndexes 获得很多搜索结果。如果我搜索“NSTableView reorder”,我会得到排序表项的命中。

感谢您的建议。

【问题讨论】:

标签: objective-c macos cocoa nstableview


【解决方案1】:

使用这些方法:

- (BOOL)tableView:(NSTableView *)aTableView acceptDrop:(id < NSDraggingInfo >)info row:(NSInteger)row dropOperation:(NSTableViewDropOperation)operation

- (NSDragOperation)tableView:(NSTableView *)aTableView validateDrop:(id < NSDraggingInfo >)info proposedRow:(NSInteger)row proposedDropOperation:(NSTableViewDropOperation)operation

- (BOOL)tableView:(NSTableView *)aTableView writeRowsWithIndexes:(NSIndexSet *)rowIndexes toPasteboard:(NSPasteboard *)pboard

Corbin Dunn 的This guide 有点老了,但应该能让你顺利到达那里。

【讨论】:

  • 谢谢。我希望在实施这些方法方面获得更多帮助。对它们进行搜索对我几乎没有帮助,只是我似乎需要为 tableview 控件注册某种类型的拖动类型。
  • 感谢您的链接。是的,虽然最关键的部分acceptDrop 不完整,但上述网站给了我很多线索。同时,我在第一条评论中发布的链接中提供的示例项目可以在一定程度上(不完全)补充它。
  • 老实说,我不知道它是如何工作的。但是我以某种方式设法通过 Wain 发布的链接和示例项目中的代码组合拖动移动了一行。现在的生活太复杂了。
  • @TBlue: writeRowsWithIndexes: 是“拖动”方法,另外两个是“拖放”方法。在writeRowsWithIndexes: 中,您将项目(或它们的标识符)放在粘贴板上,在acceptDrop: 中,您检索这些项目并根据拖动操作的要求移动或复制它们。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多