NSTableView拖放将项目拖放到新位置

时间:2013-09-13 08:49:54

标签: objective-c macos cocoa xcode4.2

如何开始实施拖动和放大在NSTableView中删除功能以重新排序我们在OSX的Language & Text首选项面板中看到的项目?

我在网上找不到任何参考资料。也许我正在用错误的关键词寻找它?

也许它甚至不是NSTableView,也许我需要扩展NSTableColumn或NSCell。

我在Snow Leopard中使用XCode 4.2。

任何帮助表示赞赏!

我附上了上面提到的面板中的图片以给出一个想法(将项目“Deutsch”拖到最后一个位置):

enter image description here

1 个答案:

答案 0 :(得分:2)

实现以下拖放方法

1) - (BOOL)tableView:(NSTableView *)tv writeRows:(NSArray*)rows toPasteboard:(NSPasteboard*)pboard

2) - (NSArray *)namesOfPromisedFilesDroppedAtDestination:(NSURL *)dropDestination

3) - (void)draggedImage:(NSImage *)anImage endedAt:(NSPoint)aPoint operation:(NSDragOperation)operation

4) -(void)awakeFromNib
{
        [tableView registerForDraggedTypes: [NSArray arrayWithObjects:NSPasteboardTypeString, nil]];
        [tableView setDraggingSourceOperationMask:NSDragOperationEvery forLocal:NO];
}

同样在绑定中,将表连接到文件所有者的数据源