首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >告诉macOS,没有.png扩展名的自定义文件格式是有效的png。

告诉macOS,没有.png扩展名的自定义文件格式是有效的png。
EN

Stack Overflow用户
提问于 2019-07-24 06:45:26
回答 1查看 93关注 0票数 0

我需要一个自定义的文件格式,我的应用程序,我认为我可以做一个超集的PNG。macOS在Finder中显示常规PNG文件的预览(以及具有.png扩展名的APNG)。我希望macOS显示我的文件格式的预览,即使它没有.png扩展名。我需要告诉macOS,具有.px2扩展名的文件是有效的PNG,可以由常规的PNG解码器解码。

我一直在阅读此页,试图找到合适的密钥集使用,但我没有任何运气。我认为NSExportableTypes可能是答案,但似乎并不是这样。

为了测试这一点,我将APNG文件的扩展名从.png更改为.px2。我意识到我可以只使用.png,但我认为这可能有点混乱(无论对用户还是对操作系统)。

我想做的事情很有可能是不可能的!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-08-02 14:19:07

我认为您可能会看到两个不同的问题:一个是操作系统识别文件类型并将其链接到您的应用程序,另一个是能够显示预览。

后者将高度依赖于Finder内置的QuickLook插件的工作方式。您可能需要自己实现其中之一。

调试这些问题可能有点棘手,因为您需要确保macOS已经吸收了您的NSExportableTypes。一个快速检查是进入终端并使用mdls <file of your type and extension>并查看文件中的kMDItemContentTypekMDItemContentTypeTree是什么。

如果它根本没有识别扩展,请确保它已经通过使用隐藏在lsregister的LaunchServices框架中的CoreServices重新加载。

获取手册页的/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister

/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister -lint -f <path>强制重新加载应用程序( -lint),在解释条目时添加关于错误的更多细节。

/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister -kill -seed将重置守护进程,并从默认应用程序和库位置重新启动数据。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57176791

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档