objective-c - NSPredicateEditorRowTemplate,用空格指定关键路径?

标签 objective-c cocoa nspredicateeditor

根据之前的问题,我不情愿地放弃了使用 IB/Xcode4 来编辑 NSPredicateEditor 并完全在代码中完成。

在编辑字段的 GUI 方式中,关键路径可以用空格指定,例如“字段名称”,这使它们可以作为“fieldName”样式的关键路径,同时仍然在 UI 中以空格显示它们。我如何在代码中执行此操作?当我用空格指定它们时,它们不起作用。当我在 camelCase 中指定它们时,它们可以工作但以 camelCase 显示。我只是像这样添加了一堆 NSExpressions:

[NSExpression expressionForKeyPath:@"original filename"]

最佳答案

在谓词编辑器的行 View 中获取人类可读字符串的正确方法是使用 NSRuleEditorNSPredicateEditor 的本地化功能。

如果您按照 this blog post 中的说明进行操作,您将拥有本地化编辑器所需的一切。

例如,假设您的关键路径是 fileName,您支持 2 个运算符(iscontains),并且您想要用户输入一个字符串。您最终会得到一个如下所示的字符串文件:

"%[fileName]@ %[is]@ %@" = "%1$[fileName]@ %2$[is]@ %3$@";
"%[fileName]@ %[contains]@ %@" = "%1$[fileName]@ %2$[contains]@ %3$@";

你可以使用这个文件来放入人类可读的东西,甚至重新排序:

"%[fileName]@ %[is]@ %@" = "%1$[original filename]@ %2$[is]@ %3$@";
"%[fileName]@ %[contains]@ %@" = "%3$@ %2$[is contained in]@ %1$[original filename]@";

一旦您本地化了字符串文件,您将该文件交还给谓词编辑器,它会提取翻译后的值,发挥它的魔力,一切都会正确显示。

关于objective-c - NSPredicateEditorRowTemplate,用空格指定关键路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5943103/

相关文章:

objective-c - Mac OSX 和 Xcode ImageView

arrays - 如何在不同数据上使用 NSPredicate 和 NSPredicateEditor(多个谓词?)

ios - iOS 上的双 AVCaptureSession 输出

objective-c - 将 FMResultSet 转换为 NSMutableArray?

ios - 协议(protocol) "markedDatesFrom"中的方法 "KalDataSource"未实现错误

objective-c - NSButton 中的图像未显示?

objective-c - 使 Objective C 程序响应 applescript

cocoa - 如何获取特定日期的夏令时设置?

objective-c - NSPredicateEditor & NSExpression - 显示可以不同于谓词的值吗?

objective-c - 将 NSPredicateEditor 绑定(bind)到共享用户默认 Controller