gpt4 book ai didi

cocoa - 为 Spotlight 元数据查询配置 NSPredicateEditor(RowTemplate)I'

转载 作者:行者123 更新时间:2023-12-03 16:44:36 25 4
gpt4 key购买 nike

我正在尝试配置 NSPredicateEditor(在 Interface Builder 中)来编辑 NSMetadataQuery 的谓词。

作为第一步,我尝试配置 NSPredicateEditorRowTemplate 以接受左侧表达式的关键路径,尝试使用单个 keyPath (kMDItemTextContent )开始。

我不知道如何将所有部分放入 IB 中。我选择了行模板,并在 IB 属性检查器中将“Left Exprs”设置为“Key Paths”。但是,使用 Apple 的 PhotoSearch 示例作为模型,看来我应该在此处输入用户可读的属性名称(例如“内容”);我不知道如何将其绑定(bind)到“kMDItemTextContent”。

我已经剖析了 PhotoSearch(*) 中的(正确配置的)NIB,其中有一个 NSKeyPathExpression 指定附加到 NSPopUpButton/的元数据属性NSPopUpButtonCell

我不知道在 IB 中导航到哪里才能找到 NSPopUpButton,并且我不确定如何将其绑定(bind)到 NSExpression .

感谢任何帮助。

(*) 如果您想知道,我通过将 NIB 转换为 XIB 来进入 NIB,确认它仍然可以正确构建,然后使用 BBEdit 检查它。

最佳答案

我发现在 Interface Builder 中使用 NSPredicateEditor 和 friend 是一项极其乏味的任务。因此,我在代码中完成所有行模板配置。

对于您的情况,听起来您不需要自定义行模板子类,因此您可能可以这样做:

#define NSPERT NSPredicateEditorRowTemplate
NSPERT * template = [[NSPERT alloc] initWithLeftExpressions:[NSArray arrayWithObject:[NSExpression expressionForKeyPath:kMDItemTextContent]]
rightExpressionAttributeType:NSStringAttributeType
modifier:NSDirectPredicateModifier
operators:[NSArray arrayWithObject:
[NSNumber numberWithUnsignedInteger:NSContainsPredicateOperatorType]]
options:(NSCaseInsensitivePredicateOption|NSDiacriticInsensitivePredicateOption)];

获得模板后,只需将其添加到谓词编辑器即可:

NSMutableArray * templates = [[myPredicateEditor rowTemplates] mutableCopy];
[templates addObject:template];
[template release];
[myPredicateEditor setRowTemplates:templates];
[templates release];

至于翻译“kMDItemTextContent”,如果它不会自动发生(我认为可能会发生),您可以使用 NSPredicateEditor localization options显示不同的名称。

关于cocoa - 为 Spotlight 元数据查询配置 NSPredicateEditor(RowTemplate)I',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4708256/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com