0

我正在编写一个 Cocoa 应用程序,该应用程序需要在其 Dock 图标上接受挂载的卷。它不是基于文档的;我打算将每个卷分派给application:openFiles.

我已经让 Dock 点亮我的应用程序的磁贴以进行拖动,但在放下时,我的应用程序显示一个警报:“无法打开文档 [卷名]。[我的应用程序] 无法打开这种类型的文件。” 我的application:openFiles:方法永远不会运行,即使委托已连接并发送了其他委托消息。

那么,在我的 Dock 磁贴上接受一卷内容的正确方法是什么?

4

2 回答 2

2

可能您Info.plist的设置不正确。它应该包括这样的内容:

CFBundleDocumentTypes =     (
    {
        LSItemContentTypes =             (
            "public.volume"
        );
    }
);

或者,如果您需要支持 10.5 之前的版本,您可以使用CFBundleOSTypesand代替。disk

application:openFiles:通过这样做,我能够开始工作。

如果您已经这样做了,那可能是 Launch Services 变得混乱了……清理并重建您的项目,尝试不同的用户帐户,使用lsregister,挥动死鸡等。

于 2010-12-05T22:30:26.883 回答
0

…委托已连接并被发送其他委托消息。

或者我是这么想的。

过失——事实上,我什至没有创建代理。我不知道为什么我认为我有。

将代理实例化并连接到 MainMenu nib 中,再加上 Nicholas Riley 建议的 Info.plist 更改,drop 现在可以工作了。

于 2010-12-05T23:23:33.983 回答