3

以前の質問によると、私はしぶしぶ IB/Xcode4 を使用して NSPredicateEditor を編集することをあきらめ、純粋にコードでそれを行いました。

GUI でフィールドを編集する方法では、「フィールド名」のようにキー パスをスペースで指定できます。これにより、「フィールド名」スタイルのキー パスとして機能し、UI ではスペースを使用して表示されます。コードでこれを行うにはどうすればよいですか? スペースで指定すると機能しません。キャメルケースで指定すると機能しますが、キャメルケースで表示されます。私はちょうどこのような NSExpressions の束を追加しています:

[NSExpression expressionForKeyPath:@"original filename"]
4

2 に答える 2

3

述語エディタの行ビューで人間が読める文字列を取得する適切な方法は、NSRuleEditorおよびのローカライズ機能を使用することNSPredicateEditorです。

このブログ投稿の指示に従えば、エディターをローカライズするために必要なものがすべて揃っています。

例として、キー パスが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]@";

文字列ファイルをローカライズしたら、そのファイルを述語エディターに渡すと、翻訳された値が抽出され、魔法のように処理され、すべてが正しく表示されます。

于 2011-10-01T06:16:54.897 に答える