Cocoa 拖放粘贴板数据

Cocoa 拖放粘贴板数据,cocoa,drag-and-drop,Cocoa,Drag And Drop,我正在尝试编写一些简单的代码,将文本文件的内容拖放到窗口上。在前面一篇文章和一个苹果示例的帮助下,我现在已经掌握了拖放和运行的基本知识 然而不幸的是,苹果的示例代码只处理图像。有谁能告诉我如何修改他们的“粘贴板”方法(如下所示)来发送一个简单的“dot.txt”文件的内容吗 - (void)pasteboard:(NSPasteboard*)sender provideDataForType:(NSString*)type { //--------------------------------

我正在尝试编写一些简单的代码,将文本文件的内容拖放到窗口上。在前面一篇文章和一个苹果示例的帮助下,我现在已经掌握了拖放和运行的基本知识

然而不幸的是,苹果的示例代码只处理图像。有谁能告诉我如何修改他们的“粘贴板”方法(如下所示)来发送一个简单的“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];
  }
}
谢谢:-)

有谁能告诉我如何修改他们的“粘贴板”方法(如下所示)来发送一个简单的“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];
  }
}
来电者要求您发送特定类型的数据。如果可以提供该类型的数据,请将其放在粘贴板上。如果你做不到,什么也不要做

有谁能告诉我如何修改他们的“粘贴板”方法(如下所示)来发送一个简单的“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];
  }
}

来电者要求您发送特定类型的数据。如果可以提供该类型的数据,请将其放在粘贴板上。如果你做不到,什么也不要做。

谢谢你,彼得。因此,如果我试图为粘贴板提供文本文件(“字符串”类型的数据)而不是图像文件,那么此方法在未修改的情况下仍然有效吗?请阅读并查看。当要求输入文本时,它会做什么?并且在输入此方法之前,您没有向粘贴板提供数据,这是此方法的工作。这种方法实现了您先前做出的承诺;当另一端试图访问您承诺但未提供的数据时,您将收到此消息。谢谢,Peter。因此,如果我试图为粘贴板提供文本文件(“字符串”类型的数据)而不是图像文件,那么此方法在未修改的情况下仍然有效吗?请阅读并查看。当要求输入文本时,它会做什么?并且在输入此方法之前,您没有向粘贴板提供数据,这是此方法的工作。这种方法实现了您先前做出的承诺;当另一端试图访问您承诺但未提供的数据时,您将收到此消息。