我正在编写一个Cocoa应用程序,需要在Dock图标上接受已安装卷的下落。它不是基于文件的;我打算将每个卷分发到application:openFiles
中的相应处理程序。
我已经让Dock点亮我的应用程序的磁贴以进行拖动,但是在删除时,我的应用程序显示一条警告:“无法打开文档[卷名]。 [我的应用程序]无法打开此类型的文件。“我的application:openFiles:
方法永远不会运行,即使代理已连接并发送其他委托消息。
那么,在Dock平铺上接受一滴音量的正确方法是什么?
答案 0 :(得分:2)
可能您的Info.plist
未正确设置。它应该包括这样的东西:
CFBundleDocumentTypes = (
{
LSItemContentTypes = (
"public.volume"
);
}
);
如果您需要支持10.5之前的版本,则可以使用CFBundleOSTypes
和disk
。
通过这样做我能够让application:openFiles:
工作。
如果您已经这样做了,可能是启动服务变得混乱......清理并重建您的项目,尝试使用其他用户帐户,使用lsregister
,挥动死鸡等等。
答案 1 :(得分:0)
...代理人被连接起来并被发送给其他委托消息。
或者我想。
Mea culpa - 事实上,我甚至没有创建代表。我不确定为什么我以为我有。
将代理实例化并连接到MainMenu笔尖,再加上Nicholas Riley建议的Info.plist更改,现在可以使用Drop。