2010-11-21 1 views
0

1つの属性がNSDate型のtransactionDateであるトランザクションとして名前のクラスがあります。バインディングを介して、2つのテキストフィールドにそれぞれテーブルビューの2つの行の日付を表示します。

NSArrayControllerを使用して、テーブルビューにトランザクションのリストを表示しています。

「へ」 としてラベル付けされたテキストフィールドに私の私は、「差出人」としてラベル テキストフィールドに最初の行の日付を表示したいが -

要件と日付最後の行の 。

は - 私の質問は、私はIBでの結合を介してこれを達成することはできますか? はいの場合はどうですか?

おかげで、

Miraaj

答えて

1

はい、これを行うことができます(またはそのようなものです)。@minと@max array operatorsを参照してください。 - 自動的にコンテンツを準備するためにそれを設定し、NSArrayControllerはを追加し、新しいアプリケーション

  • を作成

    1. オープンにInterface Builder:ここ

      はこれを非常に単純なバージョンを行う方法です。次のよう

    2. "name""age"
    3. 追加2列にラベルを付け、ボタン("+"をラベル)と2つのラベル(maxvalへの変更名、minval
    4. ワイヤーアップNSArrayControllerはバインディングを表に追加します。

    alt text

    ここでアプリケーションは実行中です(インターフェイスビルダーの「シミュレート」モードのみ)。それを使用するには、+をクリックして表の一番上の行をクリックし、最初の列に名前を、2番目に年を入力します。それから、さらにいくつかの人々のために繰り返します。

    alt text

    これは、すべてのビット不可解に見えるが、それは十分です。私は私のバージョンでわかりやすくするために "Max Age"と "Min Age"というラベルを付け加えました。

  • 0

    残念ながら、これはバインディングがで特に優れているものではありません。あなたはそれを達成することができますが、それは非常にハッキリです。

    NSTableViewDataSourceプロトコルは、依然としてテーブルにデータを提供するのに完全に関連して有効な方法です。このような場合(テーブルに均一なバニラデータセットを提示するだけではない場合)、データソースプロトコルは問題を解決する唯一の方法です。このようにすれば、テーブルの表示内容を完全に制御できます。

    Core Dataを使用している場合、データソースクラスは変更のためにManaged Object Contextを観察し、データをリロードする必要があります(-reloadDataを使用してテーブル全体をリフレッシュするか、 -reloadDataForRowIndexes:columnIndexes:更新する行をチェリーに選択します)。

    関連する問題