当前位置:  开发笔记 > IOS > 正文

在同一个NSPredicateEditorRowTemplate中合并多个本地化左键路径?

如何解决《在同一个NSPredicateEditorRowTemplate中合并多个本地化左键路径?》经验,为你挑选了0个好方法。

我正在尝试在应用程序中复制Finder的基于NSPredicateEditor的元数据搜索.

我更愿意免费获得Finder的确切NSPredicateEditor,但除非有人对这个问题有更好的答案,否则看起来我将不得不尽可能地复制Finder的搜索.

在镜像Kind选项时,我遇到了问题.我开始使用所有可用Kind选项保存Finder Spotlight搜索.

Finder搜索中的每个<code>Get Info</code>在结果保存的搜索文件夹上时,查询列为:</p>

<pre class=(kMDItemContentTypeTree=com.apple.application) && (kMDItemContentTypeTree=public.archive) && (kMDItemContentTypeTree = public.content) && (_kMDItemGroupId = 8) && (_kMDItemGroupId = 9) && (_kMDItemGroupId = 13) && (_kMDItemGroupId = 7) && (_kMDItemGroupId = 10) && (_kMDItemGroupId = 11) && (_kMDItemGroupId = 12) && (kMDItemContentTypeTree = public.text) && (kMDItemKind = "my_Kind_custom_text*"cdw)

我看到的问题是,单个"Kind"用户显示的文本包含多个键路径,这些路径在结果NSPredicate中使用,基于选择的正确值.

"类"可表示(至少)kMDItemContentTypeTree,_kMDItemGroupIdkMDItemKind.

当我创建一个NSPredicateEditorRowTemplate时,我传递一个左表达式,运算符和右表达式的数组.然后创建包含Left/Operator/Right的所有可能排列的行模板.

(注意:我是以编程方式而不是在Interface Builder中创建所有NSPredicateEditorRowTemplate的).

Finder 没有创建3个左键路径和12个右键值的所有可能排列.它根据右侧拾取的值有选择地分配某个左键路径.

我正在使用NSRuleEditorformattingDictionary属性本地化行模板,基于此处的指南:http://funwithobjc.tumblr.com/post/1482915398/localizing-nspredicateeditor

可以将"Kind"的相同本地化分配给两个不同NSPredicateEditorRowTemplates 中的两个不同的键路径表达式.

当我使用相同的左键路径表达式将两个行模板本地化为"Kind"时,以下"合并模板"引用为true,并且列表中只显示一个"Kind".右侧弹出窗口是两个模板中所有vaule的联合集.

两行模板,单键路径,相同的本地化

在运行时,NSPredicateEditor将模板合并在一起,第二个弹出窗口将显示日期模板的所有操作符的并集.http://www.cocoabuilder.com/archive/cocoa/282859-nspredicateeditorrowtemplate-and-dynamic-templateviews.html

但是,当我创建两个行模板,都使用不同的左键路径表达式本地化为"Kind"时,我在左侧表达式弹出窗口中获得两个"Kind"行.模板未合并.

两行模板,两个关键路径,相同的本地化

我应该如何复制Finder的行为?我需要以某种方式合并左键路径,如果它们具有相同的本地化,即使它们表示不同的键路径/表达式,从而产生具有多个左键路径的单行模板,每个路径具有独立的右值集.

推荐阅读
echo7111436
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有