2017-12-17 4 views
-2

NSTextFieldでプログラムでバインドして実行時に変更したいと考えています。私はeの質問がある。新しいバインドの前にアンバインドする必要がありますか? 例:バインドする前にバインドを解除する必要がありますか?

[_noteTextField bind:@"value" toObject:self withKeyPath:@"project.saveNote" options:nil]; 
[_noteTextField unbind:@"value"]; 
[_noteTextField bind:@"value" toObject:self withKeyPath:@"project.note" options:nil]; 

正しいですか?それとも私は特にenabledのようなブール値のため、

[_noteTextField bind:@"value" toObject:self withKeyPath:@"project.saveNote" options:nil]; 
[_noteTextField bind:@"value" toObject:self withKeyPath:@"project.note" options:nil]; 
+0

@mattこの警告へのリンクがありますか? – Willeke

+0

'@"値 "の代わりに' NSValueBinding'を使用します。なぜバインディングを変更したいのですか?それは設計の欠陥のように感じる。 – Willeke

+0

@Willekeバインディングを変更するのではなく、コントローラーレベルでオブジェクトを置き換える方が好きかもしれません。少なくとも '-unbind:'は存在します。 –

答えて

0

が複数の値バインディングがありますアンバインドする必要はありません。これらは、バインドされたプロパティのキーを変更することによって実装されます。 e。 enabledenabled2、...したがって、同じキーを2回使用すると、この複数値バインディングでも既存のバインディングが削除されます。

ただし、既存のバインディングが削除されているかどうか、および実装によって異なる動作が選択されているかどうかは文書化されていません。

なぜ既存のバインディングを明示的に削除したくないのですか?これは、あなたがしたいことです。明示的に、何をしたいのかを示すコードを持つことは良い考えです。

関連する問題