NSPasteboard:拖动不同类型的多个对象

时间:2013-07-19 10:19:13

标签: objective-c drag-and-drop nstableview export-to-excel nspasteboard

我想将应用中的数据复制到Numbers或Excel表格中。数据主要由整数组成,但也包括一些图像。我尝试通过首先将数据放入NSTableView,然后通过以下方法将数据写入粘贴板来实现此目的:

- (BOOL)tableView:(NSTableView *)tv writeRowsWithIndexes:(NSIndexSet *)rowIndexes toPasteboard:(NSPasteboard*)pboard
{
    NSArray * dataToPaste = [NSArray arrayWithObjects:[NSString stringWithFormat:@"%ld \t %ld \t %ld \t %ld \t %ld \t %ld \t %ld \t %ld \t",
                                               data1,
                                               data2,
                                               data3,
                                               data4,
                                               data5,
                                               data6,
                                               data7,
                                               data8],
                                               [An NSImage], nil];
    [pboard writeObjects:dataToPaste];
    return YES;
} 

如果我最后没有添加NSImage,那么所有数据都会被很好地复制,但是只要我将NSImage添加到数组中,只会复制图像,如果我添加了两个NSImage,那么只有第一个获得复制。我错过了什么?

任何想法都将不胜感激!

编辑:顺便说一句,我刚才意识到,即使是Numbers.app也没有设法将包含文本和图像的复制单元拖到Excel和TextEdit中。然而,在Numbers文件之间可以正常工作。

1 个答案:

答案 0 :(得分:0)

NSArray * dataToPaste = [NSArray arrayWithObjects:[NSString stringWithFormat:@“%ld \ t%ld \ t%ld \ t%ld \ t%ld \ t%ld \ t%ld \ t%ld \ t% @”,                                                数据1,                                                数据2,                                                数据3,                                                DATA4,                                                数据5,                                                DATA6,                                                数据7,                                                DATA8]                                                [An NSImage],无;     [pboard writeObjects:dataToPaste];

对于图像使用“%@”格式说明符,对于NSnumber使用%ld,可能它将是解决方案。

相关问题