0

バインディングの代わりに IBOutlets を使用するのはなぜですか?

IB のバインディングはより単純に見えます。

バインディングではできなくて IBOutlets でできることは何ですか?

4

1 に答える 1

1

バインディングはアウトレットの代わりになるものではなく、UI の特定の側面を接続する別の方法にすぎません。とはいえ、バインディングがあまり効果的でないことはたくさんあります。たとえば、実装NSTableViewDataSourceすると処理できるようになります (そして、アウトレットを使用して上記のデータ ソースを接続します)。

さらに、コントローラーがバインディングを介して対話するための関連ビューを取得しようとしているわけではありませんが、それらをアウトレットに接続することはできます。ある意味では、アウトレットはオブジェクトを整理する方法です。それ自体ではあまり機能しないかもしれませんが、取得するために不必要に探し回らなければならないデータを提供します (特定のタグを持つビューのサブビューをふるいにかけることはできません)。非常に楽しく、プロセス全体を簡素化するためのアウトレットがあることを考えると、本当に無駄な努力です)。

ただし、私の主なポイントは、バインディングをアウトレットの代わりと考えるべきではないということです。そうではありません。バインディングはアウトレットを置き換えることはできず、アウトレットはバインディングを置き換えることもできません。バインディングはアウトレットにある程度依存しているため、必要に応じてそれらを取り除くことはできませんでした。一方、アウトレットは、何がどこに行くかを言うためだけに存在します。つまり、それNSTextViewはプロパティstatusFieldに入り、それNSTableViewはプロパティに入りますmessagesTableView

繰り返しになりますが、アウトレットは組織であり、バインディングの代わりに使用するだけのものではありません。

于 2012-08-14T05:11:00.240 に答える