2011-06-27 10 views
2

私はObjective-Cを初めて使いました。しかし、私はサークルで走っているようです。私はコードを書くことなくできるだけ多くのことをしようとしています。 1つのNSArrayControllerのコンテンツセットを2つの他のNSArrayControllersの選択肢に効果的にバインドすることは可能ですか?複数のNSArrayControllerセレクションにNSArrayControllerのコンテンツセットをバインドする方法

たとえば、選択した売り手(NSArrayController)を使用して、選択したユーザ(NSArrayController)のすべてのトランザクション(NSArrayController)が必要です。次に、新しいトランザクションを追加すると、選択したユーザーと売り手にリンクします。

ユーザコントローラにバインドされたNSTableViewで新しいユーザをクリックすると、トランザクションコントローラにバインドされたNSTableViewのトランザクションはそれに応じて変更されますが、選択された売り手に関連するトランザクションは保持されます売り手のコントローラにバインドされているNSTableViewで(逆も同様)

私は拘束力のない世界に住んでいたので、自分の視点を変えるだけでいいかもしれません。

ありがとうございました。あなたが定期的にIB userArrayController.selection.transactionsにバインドされたそのcontentSetと「TransactionsForUserAndSeller」NSArrayControllerはで構成することができます

答えて

1

はその後NSPredicateを返す値の変圧器でsellerArrayController.selectionにバインドされたそのfilterPredicateを使用して結果をフィルタリングします。

値変換」の実装は次のようになりますこと:これは正しくサブセットを示すだろう

+(Class)transformedValueClass { return [NSPredicate class]; } 

+(BOOL)allowsReverseTransformation { return NO; } 

-(id)transformedValue:(id)value { 

    if (value == nil) return nil; 

    return [NSPredicate predicateWithFormat: 
      [NSString stringWithFormat:@"seller == %@", value]]; 
} 

いますが、への出口を通って現在の選択を取得し、手動での関係を処理するために、独自のaddメソッドを記述する必要があります売り手アレイコントローラ。

+0

thatsスマートな解決策 –

関連する問題