2010-01-10 62 views
1

我试图编写一些简单的代码,将文本文件的内容拖放到窗口上。在前面的帖子和苹果例子的帮助下,我现在已经掌握了拖放和运行的基础知识。拖放粘贴板数据

不幸的是,Apple的示例代码只涉及图像。任何人都可以告诉我如何修改他们的“粘贴板”方法(如下所示)来发送一个简单的'dot.txt'文件的内容?

- (void)pasteboard:(NSPasteboard*)sender provideDataForType:(NSString*)type 
{ 
//------------------------------------------------------ 
// method called by pasteboard to support promised drag types. 
//-------------------------------------------------------- 
//sender has accepted the drag and now we need to send the data for the type we promised 
if([type compare: NSTIFFPboardType]==NSOrderedSame) 
    { 
    //set data for TIFF type on the pasteboard as requested 
    [sender setData:[[self image] TIFFRepresentation] forType:NSTIFFPboardType]; 
    } 
else if([type compare: NSPDFPboardType]==NSOrderedSame) 
    { 
    [sender setData:[self dataWithPDFInsideRect:[self bounds]] forType:NSPDFPboardType]; 
    } 
} 

感谢:-)

回答

1

谁能告诉我我怎么会修改他们的“纸板”的方法(如下图所示)发送一个简单的内容“dot.txt”文件?

调用者要求您发送某种类型的数据。如果您可以提供该类型的数据,请将其放在粘贴板上。如果你不能,不要做任何事情。

+0

谢谢,彼得。那么如果我试图为文本文件(字符串类型的数据)提供一个文本文件而不是图像文件,这种方法仍然可以不被修改吗? – Bender 2010-01-11 01:17:05

+0

阅读并参阅。请求文本时它会做什么? – 2010-01-11 01:26:23

+0

在输入此方法之前,您并未向数据板提供数据 - 这是此方法的工作。这种方法实现了你之前做出的承诺;当另一端尝试访问您承诺但未提供的数据时,您会收到此消息。 – 2010-01-11 01:28:34