NSArrayControllerのバインディングはどこで宣言されていますか?

NSArrayControllerをバインドすると、コントローラのコンテンツタブで以下のバインディングが使用可能になります

  • コンテンツ配列
  • 複数選択のコンテンツ配列
  • コンテンツオブジェクト
  • コンテンツセット

しかし、これらのオプションは Appleの NSArrayController のリファレンス、または実際の NSArrayController.h の内部にはありません。彼らはどこから来たのか?そして arrangedObject プロパティとどのように違うのですか?

スクリーンショット

enter image description here

2

1 答え

彼らはドキュメントがあります。 href = "http://developer.apple.com/library/mac/documentation/Cocoa/Reference/CocoaBindingsRef/" rel = "nofollow"> Cocoa Bindings Reference を参照してください。ヘッダーファイル。 Xcodeの知識は、おそらくXcodeに組み込まれているプラ​​グインの一部にあるかもしれません。

そして arrangedObject プロパティとどのように違いますか?

arrangedObjects (plural) is an output. The array controller arranges its content objects, and the result of that is its arranged objects.

バインディングは入力です。

  • contentArray is the main one, since it is an array controller.
  • contentSet is an alternative for binding to Core Data to-many relationships, which are sets. I'm not sure whether it works with ordered sets; when the set isn't ordered, the order used by arrangeObjects: and manifest in arrangedObjects is determined by the array controller's sort descriptors.
  • contentArrayForMultipleSelection, you don't normally need. The case in which you do need it is described quite well in the Cocoa Bindings Reference.
  • contentObject is, as the CBR says, another array controller. Again, see the docs for its description of when you'd need it.

コンテンツは、 arrangeObjects:によってコンテンツバインディングの1つ(または複数)から取得され、(配列コントローラが持つ任意のソート記述子に従って)配列され、 arrangedObjects

2
追加された
スーパークリア、それを得た!ありがとう。ところで、バインド可能なものとクラス内でバインドできないものを宣言する方法はありますか?
追加された 著者 Tony,
実際には、 NSKeyValueBindingCreation Protocol を参照してください。私は "exposeBinding"メソッドは、バインドできるものがあることをXcodeに知らせるものだと思います。
追加された 著者 Tony,
@トニー:いいえ。ヘッダー(または別個の文書)のコメントで文書化するだけで済みます。
追加された 著者 Peter Hosey,
@トニー:いいえ。最後に、Xcodeは exposeBinding:メッセージからのバインディングを検出しませんでした。 (確かに、 bind :::: が実装されているかどうかに依存するため、どのオプションを利用できるかはわかりません)。
追加された 著者 Peter Hosey,