【问题标题】:NSTableView drag & drop item to a new positionNSTableView 将项目拖放到新位置
【发布时间】:2013-09-17 21:22:50
【问题描述】:

如何开始在 NSTableView 中实现拖放功能以重新排序项目,就像我们在 OSX 的 Language & Text 首选项面板中看到的那样?

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

也许连 NSTableView 都没有,也许我需要扩展 NSTableColumn 或 NSCell。

我在 Snow Leopard 中使用 XCode 4.2。

任何帮助表示赞赏!

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

【问题讨论】:

标签: objective-c macos cocoa xcode4.2


【解决方案1】:

实现以下拖放方法

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];
}

还在绑定中将您的表连接到文件所有者的数据源

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-10-23
    • 2016-05-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多