2 つのウィンドウがあります。ウィンドウ A は NIB からロードされます。ウィンドウ B はプログラムで作成されます。
どちらのウィンドウにも NStextView があります。ウィンドウ A の textview の attributedString は、IB を使用しtext
てモデルのプロパティにバインドされています。ウィンドウ B の textview の attributedString は、メソッドを使用してモデルのプロパティにバインドされます。text
-[NSObject bind:toObject:withKeyPath:options:]
[textview bind:@"attributedString"
toObject:obj
withKeyPath:@"text"
options:nil];
奇妙なことに、ウィンドウ B のテキストビューは実際には にバインドされてobj.text
いますが、テキストビューの変更が に更新されることはありませんobj.text
。しかし、ウィンドウ A のテキストビューを変更するobj.text
と、それに応じてウィンドウ B のテキストビューも更新されます。
だから私は考えています、-[NSObject bind:toObject:withKeyPath:options:]
メソッドは一方向バインディングのみです。Cocoa のドキュメントに明確な説明が見つかりませんでした。この問題の経験はありますか?コードで双方向バインディングをどのように実装しますか?