cocoa - 如何使 Finder 'Open With' 适用于我的应用程序(Xcode、OS X)?

标签 cocoa macos document finder file-type

我创建了一个能够播放音频文件的应用程序。这本身工作得很好,从查找器拖放到我的应用程序也是如此。

我还希望人们可以使用“打开方式”菜单从 Finder 中使用我的应用程序(甚至允许他们将我的应用程序设置为特定文件类型的默认应用程序)

经过大量搜索,我发现我应该在 Xcode 中配置文档类型( Editing information property lists ) 我成功添加了一个名为“音乐文件”的类型,UTI为“public.mp3” 现在,当我右键单击 MP3 文件时,我的应用程序会列在“打开方式”菜单中。 尝试使用它时,我的应用程序打开,但收到一条警告消息:“无法打开文档。应用程序无法打开‘音乐文件’格式的文件”

它似乎不像 Windows 中那样通过命令行传递。 我的应用程序确实支持从 Finder 进行拖放,而且效果也很好。

我真的不知道下一步该去哪里,所以如果有人能指出我正确的方向,那就太好了。 我的应用程序不使用 NSDocument,因此我认为“Class”字段不适用于我(并且根据文档,该字段不是必需的,但它没有说明如何在没有 Class 的情况下处理它)

最佳答案

你实现application:openFile:吗?在你的应用程序委托(delegate)中?当您的应用程序被要求从 Finder 打开文件时,将调用此方法。如果未实现或未返回 YES,则框架将假定文件未成功打开并向用户报告该事实。

关于cocoa - 如何使 Finder 'Open With' 适用于我的应用程序(Xcode、OS X)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2998203/

相关文章:

c - 使用命令 "s"时 GDB 不会进入函数

macos - MATLAB mex 不在 macOS 上寻找编译器 gfortran

ios - 有没有办法快速从 vImage_Buffer 获取像素格式信息?

java - 如何在Java中放置字符串文本而不将内容转换为xml文件?

java - 如何使用文档生成器工厂获取 xml 属性值

objective-c - 如何确保在应用程序终止时调用您的 dealloc 代码?

iphone - Objective C -std=c99 用法

swift - 在 Mac Catalyst 中使用文档浏览器 View Controller

c - 为什么 NSError 需要双重间接? (指向指针的指针)

objective-c - objective-c/ cocoa : How to write a proper multilanguage app?