2011-04-22 7 views
0

私のプロジェクトでは、変更可能な辞書にバインドされている2つのテキストフィールドがあります。私は最初のフィールドを2番目のフィールドで割った3番目のテキストフィールドを作成したい。しかし、Interface Builderの[バインディング]タブの[モデルキーパス]内でこれを実行しようとすると、無効であると表示されます。これをどのように機能させることができますか?Cocoa Bindingsモデルキーパス部

答えて

1

任意の算術演算を実行したり、キーまたはキーパスで任意の式を使用することはできません。キーはオブジェクトによって提供されるプロパティを指定し、キーパスはプロパティのシーケンスを指定します。コレクション演算子などいくつかのバリエーションがありますが、それらはあなたの特定の設定には当てはまりません。

  • 代わりに辞書のカスタムクラスを使用すると、これらの二つの他の特性に基づいて演算を表しプロパティを暴露する:あなたが試みることができる、と述べた

    Key-Value Observing Programming Guideにはそのセクションがあります。

  • カスタムvalue transformerを使用すると、辞書が算術演算の結果に変換されます。

  • NSDictionaryのカテゴリを使用して、算術演算を表すプロパティを公開します。私は個人的にはこれが過度だと思って、本当にそれをお勧めしません。

  • バインディングをまったく使用せず、アプリケーションデリゲート、ウィンドウコントローラー、またはビューコントローラーで直接算術演算を実行しません。

関連する問題