将文件拖放到Cocoa中的Dock图标上

时间:2010-03-22 04:03:51

标签: cocoa file drag-and-drop dock

如何将Info.plist中指定类型的文件(或选择在Finder中打开)放到我的停靠栏图标上,然后使用文件的完整路径调用方法?

5 个答案:

答案 0 :(得分:17)

如果您正确设置了Info.plist的CFBundleDocumentTypes数组('LSItemContentTypes'或'CFBundleTypeExtensions'),那么您只需要设置NSApplication委托并实现委托方法{{3 }}

如果您希望一次删除多个文件,请实施application:openFile:

对于承诺文件(NSFilesPromisePboardType / kPasteboardTypeFileURLPromise),请参阅application:openFiles:

答案 1 :(得分:8)

这是Xcode 5的更新解决方案。 在AppDelegate.m中

-(BOOL)application:(NSApplication *)sender openFile:(NSString *)filename
{
    NSLog(@"%@", filename);
    return YES;
}

在项目>下的Xcode设置文档类型中;目标>信息: Project > Info > Document Types

检查Info.plist中的设置,以防您有一个空的'文档内容类型UTI'数组,该数组应该正确填写或删除。 Delete empty Document Content Type UTIs array from Info.plist

您的Info.plist应如下所示: Document Types Info.plist

答案 2 :(得分:7)

在当前系统上,您可以使用UTI而不是旧式四字符类型(例如上面的fold)。在Xcode的文档类型编辑器中,使用以下命令创建一个新类型:

  • 名称:文件夹
  • 标识符:public.folder

public.folderpublic.directory的子类型。 public.folder匹配对用户显示的目录,即不是.app包装器之类的包。

答案 3 :(得分:1)

在侧窗格的目标组中选择您的应用程序并使用获取信息。然后在新窗口中选择属性选项卡以添加新文档类型。为方便起见,将其命名为“文件夹”,操作系统类型需要“折叠”;您可以保留的商店类型和角色。

答案 4 :(得分:0)

如果您实际上正在制作基于文档的应用程序,那么将其设置为为您提供路径将让您完成比您需要的工作更多的工作。只需使用基于文档的应用程序模板。文档控制器将为您创建正确类的实例;你只需要写那个班。

您以这种方式创建的应用程序将免费处理文件丢弃(通过将其作为文档打开)。