【问题标题】:Drag-and-drop pasteboard data拖放粘贴板数据
【发布时间】:2010-01-10 23:09:10
【问题描述】:

我正在尝试编写一些简单的代码来将 text 文件的内容拖放到窗口上。在之前的一篇文章和一个 Apple 示例的帮助下,我现在掌握了拖放操作的基础知识。

不幸的是,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];
  }
}

谢谢:-)

【问题讨论】:

    标签: cocoa drag-and-drop


    【解决方案1】:

    谁能告诉我如何修改他们的“粘贴板”方法(如下所示)以发送简单的“dot.txt”文件的内容?

    调用者要求您发送某种类型的数据。如果您可以提供该类型的数据,请将其放在粘贴板上。如果做不到,什么也不做。

    【讨论】:

    • 谢谢,彼得。那么,如果我尝试为粘贴板提供文本文件(“字符串”类型的数据)而不是图像文件,这种方法是否仍然可以在未修改的情况下工作?
    • 阅读并查看。当被要求输入文字时它会做什么?
    • 在进入这个方法之前你没有向粘贴板提供数据——这就是这个方法的工作。这个方法实现了你之前做出的承诺;当另一端尝试访问您承诺但未提供的数据时,您会收到此消息。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-02
    • 1970-01-01
    • 1970-01-01
    • 2019-04-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多