【问题标题】:Drag rows out of iTunes into Cocoa App将行从 iTunes 拖到 Cocoa App 中
【发布时间】:2011-08-10 16:57:50
【问题描述】:

如何在 Cocoa 应用程序中接受从 iTunes 拖动的行?

我的应用程序中有两个接受拖放的对象:一个 NSTableView 和一个自定义视图。两者都可以识别从查找器中拖出的文件,但都不能识别从 iTunes 中拖出的行。

【问题讨论】:

  • 您到底想从 iTunes 行中获得什么?媒体,标题,...
  • 文件路径。我有答案,但由于我的声誉分数很低,我不能再发布 5 个小时。

标签: cocoa drag-and-drop itunes nstableview


【解决方案1】:

嗯,这就是答案。这将处理从 iTunes 中拖动的东西,以及从 finder 中拖动文件。你得到的是一个文件路径列表。 “发件人”是拥有拖动粘贴板的人。简短的回答是“com.apple.pasteboard.promised-file-url”是您需要从 iTunes 粘贴中获取的密钥。

NSMutableArray *paths = [NSMutableArray arrayWithCapacity:1];
NSArray *pasteboardTypes = [NSArray arrayWithObjects:@"com.apple.pasteboard.promised-file-url", @"public.file-url", nil];
for(NSPasteboardItem *item in [[sender draggingPasteboard] pasteboardItems]) {
  NSString *urlString = nil;
  for(NSString *type in pasteboardTypes) {
    if([[item types] containsObject:type]) {
      urlString = [item stringForType:type];
      break;
    }
  }
  if(urlString) {
    NSString *path = [[NSURL URLWithString:urlString] path];
    [paths addObject:path];
  }
}
NSLog(@"Pasted Paths: %@", paths);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-30
    相关资源
    最近更新 更多