Cocoa 在OS X中,通过将文档放置在基于文档的应用程序图标上打开文档
我正在制作一个基于文档的应用程序,其中文档是应用程序包。 我可以通过“文件”打开它们→ 打开“菜单”即可。但当我尝试将它们放在Dock图标上时,它们会被拒绝,并且图标不会高亮显示 我已经搜索了这个问题,考虑到指定了LSItemContentTypes属性,它似乎应该可以正常工作。以下是我的Info.plist摘录:Cocoa 在OS X中,通过将文档放置在基于文档的应用程序图标上打开文档,cocoa,Cocoa,我正在制作一个基于文档的应用程序,其中文档是应用程序包。 我可以通过“文件”打开它们→ 打开“菜单”即可。但当我尝试将它们放在Dock图标上时,它们会被拒绝,并且图标不会高亮显示 我已经搜索了这个问题,考虑到指定了LSItemContentTypes属性,它似乎应该可以正常工作。以下是我的Info.plist摘录: CFBundleDocumentTypes = ( { CFBundleTypeName = "Example"; CFBundleTypeRole =
CFBundleDocumentTypes = (
{ CFBundleTypeName = "Example";
CFBundleTypeRole = "Editor";
LSHandlerRank = "Alternate";
LSItemContentTypes = ( "com.apple.application-bundle" );
NSDocumentClass = "Example";
NSExportableTypes = ( "com.apple.application-bundle" );
},
);
(我在Xcode之外开发,这是一个TextMate格式的plist文件。)
我还尝试在我的应用程序代理上实现application:openFile:
和application:openFiles:
,但它们从未被调用
日志中没有警告或其他相关消息。我缺少什么?也许您需要将
LSTypeIsPackage
设置为YES
这是我看到的你的plist和我的打开包的plist的唯一区别
之后,您可能需要注销/登录、重新启动应用程序或其他“刷新系统/启动服务”?可能需要添加扩展<代码>CbundleTypeExtensionApp不工作。我没有它,因为LSItemContentTypes优先于它。看,我已经重新启动了我的Mac,它没有帮助。根据文档:“如果存在LSItemContentTypes键,则忽略此键”无论如何,我很高兴知道我的plist很好。我会尝试在一个新的应用程序上重现这个问题,也许我的应用程序中有什么特别的错误。