我为漫画文件创建了一个聚光灯导入器。属性已成功导入和搜索。剩下的一件事就是让属性显示在文件的获取信息窗口中。
似乎这应该是编辑schema.xml文件的简单问题,因此属性嵌套在displayattrs标记内。不幸的是,这似乎不起作用。
我简化了测试插件。以下是所有重要文件。
schema.xml中
<types>
<type name="cx.c3.cbz-archive">
<allattrs>
kMDItemTitle
kMDItemAuthors
</allattrs>
<displayattrs>
kMDItemTitle
kMDItemAuthors
</displayattrs>
</type>
<type name="cx.c3.cbr-archive">
<allattrs>
kMDItemTitle
kMDItemAuthors
</allattrs>
<displayattrs>
kMDItemTitle
kMDItemAuthors
</displayattrs>
</type>
</types>
GetMetadataForFile.m
Boolean GetMetadataForFile(void* thisInterface,
CFMutableDictionaryRef attributes,
CFStringRef contentTypeUTI,
CFStringRef pathToFile)
{
NSAutoreleasePool * pool = [NSAutoreleasePool new];
NSString * file = (NSString *)pathToFile;
NSArray * authors = [[UKXattrMetadataStore stringForKey: @"com_opencomics_authors" atPath: file traverseLink: NO] componentsSeparatedByString: @","];
[(NSMutableDictionary *)attributes setObject: authors forKey: (id)kMDItemAuthors];
NSString * title = [UKXattrMetadataStore stringForKey: @"com_opencomics_title" atPath: file traverseLink: NO];
[(NSMutableDictionary *)attributes setObject: title forKey: (id)kMDItemTitle];
[pool release];
return true;
}
答案 0 :(得分:1)
您似乎错过了</types>
标记。在写这个问题时复制/粘贴错误,或者XML文件中是否也缺少这个错误?
如果文件中缺少,则XML无效。
答案 1 :(得分:0)
您的插件文件夹结构是什么样的?
它应该是这样的(取自 QuartzComposer ),以便Spotlight导入程序进程找到并处理 schema.xml :
Contents
Info.plist
MacOS
QuartzComposer
Resources
schema.xml
version.plist