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

2024-04-02

我正在尝试配置一个NSPredicateEditor(在 Interface Builder 中)编辑谓词NSMetadataQuery.

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

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

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

我不知道在 IB 中导航到哪里才能找到NSPopUpButton,而且我不确定我会做什么来将它绑定到NSExpression.

任何帮助表示赞赏。

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


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

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

#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)];

获得模板后,只需将其添加到 predicateEditor 中即可:

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

至于翻译“kMDItemTextContent“,如果它不会自动发生(我认为它可能会发生),你可以使用NSPredicateEditor本地化选项 http://funwithobjc.tumblr.com/post/1482915398/localizing-nspredicateeditor显示不同的名称。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为 Spotlight 元数据查询配置 NSPredicateEditor(RowTemplate)I' 的相关文章

  • NSMutableArray 销毁

    我有一个数组NSMutableArray与快乐的物体 每当我尝试清除所有对象的数组并重新填充它时 这些对象就会恶意地打开 泄漏 我 它是在 init 函数中分配的 如下所示 self list NSMutableArray array 我用
  • 如何替换 NSString 中的 \xA0 字符

    以下代码不起作用 NSString importText textView string stringByReplacingOccurrencesOfString xA0 xA0 withString 编译器声明 由于输入字节不属于输入代码
  • 我应该为每个选项卡栏使用单独的 UINavigationController

    根据Apple https developer apple com library ios documentation WindowsViews Conceptual ViewControllerCatalog Chapters Combi
  • Objective-C / Cocoa Touch 中的 HTML 字符解码

    首先 我发现了这个 https stackoverflow com questions 659602 objective c html escape unescapeObjective C HTML 转义 unescape https st
  • 在iphone应用程序中的一个线程之后调度一个线程

    我想在线程完成后安排线程 是否可以 如何 例如 指定我的需要 void connection NSURLConnection connection didReceiveData NSData data 1 response schedule
  • 检测可可上的鼠标右键单击

    我正在尝试在我的原型中管理鼠标事件精灵套件 game 我从问题中使用了以下方法SO q https stackoverflow com questions 17473176 how to detect right and left clic
  • 如何将主菜单添加到 xib

    我从 xib 文件中删除了主菜单 我怎样才能重新创建它而不需要处理它 另一个新创建的xib 我似乎找不到如何告诉 IB 我从对象库添加的菜单实际上是主应用程序菜单 你不能 您过去可以简单地连接mainMenu菜单的出口 但从 Xcode 4
  • 如何在 Objective-C 中创建委托?

    我知道代表如何工作 也知道如何使用它们 但我该如何创建它们呢 Objective C 委托是一个已分配给delegate属性另一个对象 要创建一个 您需要定义一个实现您感兴趣的委托方法的类 并将该类标记为实现委托协议 例如 假设您有一个UI
  • 似乎无法在 NSMenuItem 上 setEnabled:NO

    我已经子类化了NSMenu并连接了一堆NSMenuItem通过界面生成器 我已经通过调试器进行了测试 看看它们确实得到了初始化 菜单设置为不自动启用项目 仍然当我将任何 NSMenuItem 设置为 myMenuItem setEnable
  • 将 NSDictionary 保存到 plist

    我正在使用这篇文章中找到的代码 Plist 中的多个数组 https stackoverflow com questions 6192451 mulitple arrays from plist 6193397 6193397 具有相同的
  • 给 NSWindow 一个背景图片

    好的 我已经在 Photoshop 中创建了一个图像 该图像将与我的应用程序上的按钮对齐 现在我想将其作为窗口的背景图像 以便图像上的字符将对应于我的应用程序上的按键应用程序 我一直在开发的一个小型计算器演示应用程序 基本上 我没有给按钮提
  • Java 开发人员在 Mac OS 上遇见 Objective-C

    很多年前我就用 C 进行过开发 但现在我主要是一名 Java 软件工程师 鉴于我拥有一部 iPhone 准备下个月购买 MacBook 并且总体上对开始 Mac OS 开发 使用 Objective C 感兴趣 我想我应该提出这个问题 下一
  • 如何在Mac的cocoa应用程序中允许用户的主文件夹的权限

    我有一个 Mac 应用程序 其中我正在从用户的主目录中删除一些数据 我的应用程序被拒绝 原因如下 The app only finds files in the Downloads folder It would be appropriat
  • 传递给 NSDecimalNumber +decimalNumberWithString:locale: 的区域设置参数是什么,以便它始终与使用点 (.) 小数点标记的 NSString 一起使用?

    我有一个 NSString 我想将其转换为NSDecimalNumber 该字符串是从服务器接收的 并且始终使用以下格式进行格式化en US语言环境类似XXX YYY不喜欢XXX YYY 我想创建一个NSDecimalNumber它接受XX
  • WebView 不运行 loadHTMLString 中给出的 JavaScript

    我不明白为什么这不起作用 我的桌面上有一个 test htm 文件 如下所示 This is x 2 我有一个 WebVie
  • Cocoa 中播客应用程序的 Apple Api

    我正在为 mac 创建一个播客应用程序 用户可以在其中搜索 itunes 上的播客 是否有苹果内置的 api 我可以通过它从苹果 itunes 搜索和播放播客 或任何其他用于从 itunes 搜索播客的 api 谢谢 Edit 现在我找到并
  • 如何生成Mac应用程序的安装包?

    如何为 OS X 二进制文件以及一些配置和脚本文件创建单个安装程序包 最终文件夹应如下所示 任何帮助 将不胜感激 谢谢 如果您希望将各种东西放置在不同的位置 安装程序在这里 文档在那里 支持文件在这里等等 它们也非常适合提供安装体验的可配置
  • Apple 如何在机场菜单打开时更新它? (当 NSMenu 已经打开时如何更改它)

    我有一个状态栏项目 可以弹出一个 NSMenu 并且我有一个委托集 并且它已正确连接 void menuNeedsUpdate NSMenu menu工作正常 也就是说 该方法设置为在显示菜单之前调用 我需要监听该方法并触发异步请求 稍后在
  • 使用 UIKeyCommand 检测删除键

    任何人都知道如何使用检测 删除 键UIKeyCommand在 iOS 7 上 当人们在使用 Swift 时遇到问题时 我认为用 Objective C 和 Swift 编写一个小型的 完整的例子可能是一个很好的答案 请注意 Swift 没有
  • 无法按住 CTRL+拖动 NSButton 到自定义 NSView 标题

    我想创建一个自定义的NSTableCellView由 Interface Builder 实例化 我已将 Table Cell View 类设置为MyTableCellView 并正确创建MyTableCellView NSTableCel

随机推荐