首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在不使用NSTableViewDataSource的情况下使用拖放功能对NSTableView行进行重新排序

,可以通过以下步骤实现:

  1. 首先,确保你的NSTableView已经设置了拖放功能。你可以在Interface Builder中将NSTableView的"Dragging Destination"属性设置为"YES"。
  2. 创建一个类来处理拖放操作,我们可以称之为DragDropHandler。这个类需要实现NSTableViewDelegate协议和NSTableViewDataSource协议。
  3. 在DragDropHandler类中,实现以下方法来处理拖放操作:
    • (BOOL)tableView:(NSTableView *)tableView writeRowsWithIndexes:(NSIndexSet *)rowIndexes toPasteboard:(NSPasteboard *)pasteboard { // 将被拖动的行的索引写入粘贴板 NSData *data = [NSKeyedArchiver archivedDataWithRootObject:rowIndexes]; [pasteboard declareTypes:@[kMyCustomDragType] owner:self]; [pasteboard setData:data forType:kMyCustomDragType]; return YES; }
    • (NSDragOperation)tableView:(NSTableView *)tableView validateDrop:(id<NSDraggingInfo>)info proposedRow:(NSInteger)row proposedDropOperation:(NSTableViewDropOperation)operation { // 验证拖放操作是否有效 if (operation == NSTableViewDropAbove) { return NSDragOperationMove; } return NSDragOperationNone; }
    • (BOOL)tableView:(NSTableView *)tableView acceptDrop:(id<NSDraggingInfo>)info row:(NSInteger)row dropOperation:(NSTableViewDropOperation)operation { // 接受拖放操作并重新排序行 NSPasteboard *pasteboard = [info draggingPasteboard]; NSData *data = [pasteboard dataForType:kMyCustomDragType]; NSIndexSet *rowIndexes = [NSKeyedUnarchiver unarchiveObjectWithData:data]; NSInteger fromRow = [rowIndexes firstIndex];
    • // 执行重新排序操作 // ...
    • return YES; }
  • 在你的视图控制器中,将DragDropHandler类设置为NSTableView的delegate和dataSource:
  • DragDropHandler *dragDropHandler = [[DragDropHandler alloc] init]; [tableView setDelegate:dragDropHandler]; [tableView setDataSource:dragDropHandler];

通过以上步骤,你可以在不使用NSTableViewDataSource的情况下使用拖放功能对NSTableView行进行重新排序。请注意,以上代码只是一个示例,你需要根据你的具体需求进行适当的修改和扩展。

相关搜索:使用拖放时的RealmSwift对UicollectioView项目进行重新排序使用角度2拖放和重新排序ag-grid中的行ag- grid :使用拖放对网格中的行进行重新排序拖放可在不使用列表/表单的情况下重新排序文本Qt:如何使用自定义模型在QListView中实现简单的内部拖放来对项目进行重新排序如果只使用一行,是否可以使用size classe对bootstrap 4中的列进行重新排序?使用dplyr在R中不指定列名的情况下插入新行在不丢失当前模型的情况下使用旧模型进行预测如何在不使用MySQL进行排序的情况下获得表中记录的第一行?在不重新排序数据集的情况下使用ggplot绘制时间序列箱图如何使用Python在不添加新行的情况下更改循环内文件中的行值?使用geom_tile的热图如何在不使用刻面的情况下根据其他因素进行划分和重新排序在不使用FOR XML的情况下将多行连接到单个行/列的查询-使用FOR XML进行编辑在不使用java.util的情况下从对象数组到堆栈中进行排序在不使用ggplot的情况下,将R中的条形图从最低到最高重新排序在不使用字段数据的情况下对elasticsearch中的文本字段进行排序在使用函数with()将行旋转到R中的列之后,如何按月对列名进行排序?在不使用ifelse的情况下对datafrmae中的元素进行重新分类的正确R用法是什么?有没有一种方法可以在不指定网站的情况下使用URL进行搜索?如何重新加载div (使用JavaScript)以在不刷新页面的情况下更新图形中的更改
相关搜索:
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的合辑

领券