私は2つのウィンドウを持っています:ウィンドウAはNIBからロードされています。ウィンドウBはプログラムによって作成されます。bind:toObject:withKeyPath:options:一方向バインディングですか?
両方のウィンドウはNStextView有する:ウィンドウA内のTextViewのAttributedStringのIB使用モデルのプロパティtext
に結合されます。ウィンドウBのテキストビューのattributedStringは、-[NSObject bind:toObject:withKeyPath:options:]
メソッドを使用してモデルのtext
プロパティにバインドされています。
[textview bind:@"attributedString" toObject:obj withKeyPath:@"text" options:nil];
はここで奇妙なことである:ウィンドウB内のTextViewは確かobj.text
にバインドされていますが、TextViewの変化をobj.text
に更新されることはありません。しかし、ウィンドウAのテキストビューに変更を加えた場合は、obj.text
とウィンドウBのテキストビューがそれに応じて更新されます。
私は考えている、-[NSObject bind:toObject:withKeyPath:options:]
メソッドは単方向バインディングのためだけです。私はCocoaの文書で明確な説明を見つけることができませんでした。誰もこの問題の経験がありますか?コードで双方向バインディングを実装するにはどうすればよいですか?
これはまだ私にとっては役に立たなかったです。私は答えを見つけました(私の場合) - > http://stackoverflow.com/questions/1169097/can-you-manually-implement-cocoa-bindings –
私は上記のリンクされた質問の妥当性についてはわかりません。ここで言及するバインディングは、2つのNSControlオブジェクトの間にあります。カスタムバインディングの実装は必要ありません。 – stevesliva