问题标签 [nspredicateeditor]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
116 浏览

swift - 如何持久化 NSPredicateEditor NSPredicateEditorRowTemplates 数据

我一直在努力获取项目中NSPredicatEditor从会话到会话中输入的信息Swift

任何指导或样品将不胜感激。

到目前为止我所拥有的。

  1. 在操作表中实现的功能性谓词编辑器。
  2. 绑定谓词到 NSArrayController 也绑定到 CoreData 表。
  3. 一种基于 CoreData 表属性生成行模板的方法。

什么不工作。

  • predicateditor 在无法将谓词与行模板匹配时出现错误 的绑定预测变量awakefromnib似乎也是在此处检查行模板此时未从 InterfaceBuilder 初始化(nil)

我希望能够做什么使用NSUSerDefaults持久化谓词编辑器的内容,以便在重新启动应用程序时,此编辑器具有最后输入的数据。

0 投票
1 回答
253 浏览

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

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

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

在镜像Kind选项时,我遇到了一个问题。我首先保存包含所有可用Kind选项的 Finder Spotlight 搜索。

Finder 搜索中的每个 <code>Kind</code> 选项。

当我Get Info在结果保存的搜索文件夹中时,查询被列为:

我看到的问题是,单个“Kind”用户显示的文本包含多个关键路径,这些路径根据选择的正确值在生成的 NSPredicate 中使用。

“种类”可以表示(至少)kMDItemContentTypeTree、、_kMDItemGroupIdkMDItemKind

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

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

Finder并未创建 3 个左键路径和 12 个右值的所有可能排列。它是根据在右侧选择的值有选择地分配某个左键路径。

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

可以将相同的“Kind”本地化分配给两个不同NSPredicateEditorRowTemplate的 s 中的两个不同的键路径表达式。

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

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

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

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

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

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

0 投票
3 回答
272 浏览

macos - 为什么 NSPredicateEditor 会自动本地化一些表达式字符串?如何禁用?

我发现某些 NSPredicateEditor/NSPredicateEditorRowTemplate值正在由 OS X 自动本地化。

.equalTo这在 operator:到 string的映射中很容易观察到is

但我刚刚注意到 UTI 字符串被映射到该 UTI 的人类可读版本。

下面,我设置"public.image"但它随后显示为"image".

NSPredicateEditor 中的 UTI 运算符

只有某些有效的 UTI 以这种方式映射。我不知道是否为运算符和 UTI 之外的其他格式提供了自动本地化字符串。

这是一个问题,因为我想本地化我的 NSPredicateEditor 和 Row Templates

本地化谓词的过程涉及将键与本地化值匹配。

问题是键中的值必须与UI 中显示的字符串匹配。不是最初设置为行模板的左右表达式的字符串。

因此,我无法"public.image"在密钥中使用本地化。UI 出于某种原因已经将其本地化为"image". 如果我想本地化行模板,我必须改用字符串"image"。而且我不知道这个"image"字符串是如何或为什么被选中的。

我可以通过测试确定这些字符串,然后编写一个将表达式映射到本地化字符串的表。但我更希望有一个禁用这种自动本地化的解决方案,这样我就不必担心我没有测试过的字符串。

为什么 UTI 会自动本地化?其他值是否接受相同的处理?

有没有办法禁用 UTI 字符串和/或整个谓词编辑器的自动本地化?

0 投票
0 回答
324 浏览

swift - 验证 NSPredicate 格式

在我的应用程序中,用户可以NSPredicate使用NSPredicateEditor. NSPredicateEditorRow我想通过测试 NSPredicate来验证用户是否输入了正确的 RegEx 。

那可能吗?

0 投票
2 回答
63 浏览

xamarin - 创建一个新的 NSExpression

我如何创建一个NSExpression具有恒定值的PredicateEditor.

例如:

leftExpression 应该是字符串“state”,rightExpression 应该是字符串“Germany”

我试过了:

但这不起作用。程序停止无误!

0 投票
2 回答
168 浏览

objective-c - NSPredicate 添加或更改时的 NSPredicateEditor 回调

我使用的是 XCode 9.3、objective-c、OSX 而不是 iOS。

我在我的应用程序中使用了一个 NSPredicateEditor ,到目前为止效果很好。但是我有一个视图应该使用编辑器中设置的谓词更新其内容(基本上视图显示过滤数组)。

目前,我有一个“刷新”按钮,用户需要在编辑器中更改某些内容后点击更新视图。

我想知道是否有办法触发我的方法在添加更改predicateRow 时自动更新视图?

我试图将观察者添加到 NSPredicateEditor.objectValue - 但我没有收到通知。

任何帮助表示赞赏

0 投票
0 回答
59 浏览

xcode - 如何制作 NSPredicateEditorRowTemplate 来检查 NULL 值?

我想在我的 NSPredicateEditor 中有一个选项,最好在与其他 NSComparisonPredicate 运算符相同的下拉列表中,让用户在特定键路径/字段上搜索 NULL 值。

我怎么做?

除了构建自定义 NSPredicateEditorRowTemplate 类之外,我已经尝试了一切,使用基于代码的方法。也许这是唯一的解决方案,但对于如此简单的功能来说,这似乎有点过头了。

0 投票
0 回答
129 浏览

core-data - NSPredicateEditor 中的自定义复合行

假设我们有两个核心数据实体:

  • 实体

    • 属性bar1 ;
    • 属性bar2 ;
  • 实体Foo

    • 属性foo1 ;
    • 属性foo2 ;
    • 对多关系 <Bar*>

我想使用 NSPredicateEditor 搜索“任何带有 (bar1='term1' 和 bar2='term2') 的条的 Foos”。也就是说,同一个Bar 中有多个匹配项。

使用某种具有这样 UI 的自定义复合谓词

图 1

在此处输入图像描述

图 2

在此处输入图像描述

我知道如何创建顶级 NSPredicateEditorRowTemplates 以根据 Bar 属性 (Foo.bars.bar1) 搜索 Foos。但是这些与 Foo 属性子谓词一起复合,所以我不能将搜索限制在同一个 Bar 中的多个属性。

选择要搜索的 Bar 属性时,列表应将自身限制为 Bar 属性。

甚至可以在同一个 NSPredicateEditor 中拥有多种类型的复合谓词吗?

令人惊讶的是,用于自定义 NSPredicateEditor 的代码很少......

0 投票
1 回答
56 浏览

xcode - 从用户的角度使用 predicateEditor 定义子谓词的最佳方法

我想知道如何使用 NSPredicateEditor 从用户的角度定义子谓词 - 以及如何实现它。

假设我们在 IB 中创建了一个简单的 NSPredicateEditor,如下所示。

在此处输入图像描述

它有 2 个项目可供选择:

  • 街道地址

所以我们可以创建一个谓词

现在,如果我只想选择住在第三大道的米勒,我该怎么办?我希望有一个像“s”这样的按钮来在所选行(Miller)下方创建一个子谓词来获得这个结果:

在此处输入图像描述

不幸的是,对于每个项目(行),除了 + 或 - 之外没有其他按钮。还有其他方法吗?可以通过低编程工作来完成吗?

0 投票
3 回答
90 浏览

cocoa - 突出显示 NSPredicateEditor 中的选定行

NSPredicateEditor超类NSRuleEditor公开了一个selectedRowIndexes: IndexSet属性(和相应的selectRowIndexes(IndexSet, byExtendingSelection: Bool)设置器)。在这个属性上添加一个观察者表明,只要单击谓词编辑器中的一行,它就确实发生了变化。但是,没有视觉指示表明该行被选中或取消选中。

我想在我的谓词编辑器中直观地突出显示选定的行,但是几乎没有视图绘制方法可以子类化或委托方法来实现以自定义编辑器的外观。任何人都可以提出某种方式来传达已选择规则编辑器的行吗?