将文件拖放到 Cocoa 中的 Dock 图标上
如何将 Info.plist 中指定类型的文件(或选择在 Finder 中打开)拖放到我的 Dock 图标上,然后使用文件的完整路径调用方法?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
如何将 Info.plist 中指定类型的文件(或选择在 Finder 中打开)拖放到我的 Dock 图标上,然后使用文件的完整路径调用方法?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(5)
如果您已设置 Info.plist 的 CFBundleDocumentTypes 数组正确('LSItemContentTypes' 或 'CFBundleTypeExtensions'),那么你只需要设置一个 NSApplication 委托并实现委托方法, 应用程序:打开文件:。
如果您希望一次删除多个文件,请实现 application:openFiles:。
对于承诺的文件(
NSFilesPromisePboardType
/kPasteboardTypeFileURLPromise
),请参阅将承诺的文件拖放到 Dock 中的应用程序图标上。If you've set up your Info.plist's CFBundleDocumentTypes array properly (either 'LSItemContentTypes' or 'CFBundleTypeExtensions'), then you just need to set up an NSApplication delegate and implement the delegate method, application:openFile:.
If you're expecting multiple files to be dropped at once, implement application:openFiles:.
For promised files (
NSFilesPromisePboardType
/kPasteboardTypeFileURLPromise
) see Dropping promised files on to application icon in Dock.这是 Xcode 5 的更新解决方案。
在 AppDelegate.m
和 Xcode 中设置 Project > Document Types 下目标>信息:
检查 Info.plist 中的设置,以防“文档内容类型 UTI”数组为空请正确填写,否则删除。
您的 Info.plist 应该如下所示:
Here's an updated solution for Xcode 5.
In AppDelegate.m
And in Xcode setup Document Types under Project > Targets > Info:
Check settings in Info.plist in case you have an empty 'Document Content Type UTIs' array which should be filled out properly or else deleted.
Your Info.plist should look something like this:
在当前系统上,您可以使用 UTI 而不是旧式的四字符类型(例如上面的
fold
)。在 Xcode 的文档类型编辑器中,创建一个新类型:public.folder
是public.directory
的子类型。public.folder
匹配向用户显示的目录,即不是像.app
包装器那样的包。On current systems you can use a UTI instead of the old-style four-char types (such as
fold
above). In Xcode's document type editor, make a new type with:public.folder
is a subtype ofpublic.directory
.public.folder
matches directories that appear as such to the user, i.e. not packages like.app
wrappers.在侧窗格的目标组中选择您的应用程序并使用获取信息。然后在新窗口中选择属性选项卡以添加新的文档类型。为了方便起见,将其命名为“Folder”,操作系统类型需要为“fold”;您可以保留原样的商店类型和角色。
Select your application in the target group of the side pane and use get info. Then in the new window select the properties tab to add a new document type. Name it "Folder" for convenience and the OS Types needs to be "fold"; the store type and role you can leave as is.
如果您实际上正在制作一个基于文档的应用程序,那么将其设置为为您提供路径将使您完成比您需要的更多的工作。只需使用基于文档的应用程序模板即可。文档控制器将为您创建正确类的实例;你只需要写那个类。
您以这种方式创建的应用程序将免费处理文件删除(通过将它们作为文档打开)。
If you're actually making a document-based app, setting it up to give you the path will have you doing far more work than you need to. Simply use the document-based application template. The document controller will create an instance of the right class for you; you need only write that class.
An application you create this way will handle file drops (by opening them as documents) for free.