根据之前的问题,我不情愿地放弃了使用 IB/Xcode4 来编辑 NSPredicateEditor 并完全在代码中完成。
在编辑字段的 GUI 方式中,关键路径可以用空格指定,例如“字段名称”,这使它们可以作为“fieldName”样式的关键路径,同时仍然在 UI 中以空格显示它们。我如何在代码中执行此操作?当我用空格指定它们时,它们不起作用。当我在 camelCase 中指定它们时,它们可以工作但以 camelCase 显示。我只是像这样添加了一堆 NSExpressions:
[NSExpression expressionForKeyPath:@"original filename"]
最佳答案
在谓词编辑器的行 View 中获取人类可读字符串的正确方法是使用 NSRuleEditor
和 NSPredicateEditor
的本地化功能。
如果您按照 this blog post 中的说明进行操作,您将拥有本地化编辑器所需的一切。
例如,假设您的关键路径是 fileName
,您支持 2 个运算符(is
和 contains
),并且您想要用户输入一个字符串。您最终会得到一个如下所示的字符串文件:
"%[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/