我为我的应用程序定义的自定义文档类型编写了一个 Spotlight Importer。
一切正常,元数据字段被 Spotlight 正确索引(使用mdls
命令验证),Spotlight 搜索显示我的文档。
我遇到的唯一问题是,当我询问有关文件的信息(Finder 中的 Cmd+I)时,我在文件<displayattrs>
部分中指定的项目未显示在“更多信息”部分中。schema.xml
我希望这些字段出现在那里,因为我在<allattrs>
和<displayattrs>
部分都声明了它们。
我在这里发现了几个与这个问题相关的问题,没有一个对我有帮助。
导入器被捆绑到应用程序中,由系统加载(mdimport -L
确认这一点)。此外,bundle 结构似乎是正确的,它schema.xml
出现在 Resources 文件夹以及schema.strings
en/lproj 文件夹中。
这是schema.xml
文件的样子:
<schema version="1.0"
xmlns="http://www.apple.com/metadata"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.apple.com/metadata file:///System/Library/Frameworks/CoreServices.framework/Frameworks/Metadata.framework/Resources/MetadataSchema.xsd">
<types>
<type name="com.mydomain.myapp.mydocument">
<allattrs>
kMDItemTitle kMDItemAuthors kMDItemAlbum
</allattrs>
<displayattrs>
kMDItemTitle kMDItemAuthors kMDItemAlbum
</displayattrs>
</type>
</types>
还有几件事,我的系统缺少mdcheckschema
命令,但是 XML 文件太短了,我怀疑语法有问题。
有时,“更多信息”部分会显示文件的上次打开日期,有时什么也不显示。
最后,我尝试重新导入文件(mdimport
),但无济于事。
我正在运行 Mac OS X Moutain Lion 10.8.3、Xcode 4.6.2。
所以在这里我的问题是,我是否缺少将这些项目显示在“更多信息”部分中的内容?有没有人遇到过这样的问题并找到了解决方案?
编辑:
到目前为止没有人回答我的问题,也许有人可以指点我一些关于这个问题的教程或文档?