0

1つの属性がNSDate型のtransactionDateであるtransactionという名前のクラスがあります。

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

私の要件は-

「From」というラベルの付いたテキストフィールドの最初の行に日付を表​​示し、「To」というラベルの付いたテキストフィールドの最後の行に日付を表​​示したいと思います。

私の質問は-

IBでのバインディングを介してこれを達成できますか?はいの場合、どのように?

ありがとう、

ミラジ

4

2 に答える 2

1

はい、これ (またはそれに似たもの) を実行できます。 @min および @max配列演算子を参照してください。

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

  1. Interface Builder を開く - 新しいアプリケーションを作成する
  2. NSArrayController を追加し、コンテンツを自動的に準備するように設定します。
  3. テーブルを追加し、2 つの列にラベルを付けて"name""age"
  4. ボタン (ラベル"+") と 2 つのラベル (名前をmaxval, に変更minval)を追加します。
  5. 次のように NSArrayController バインディングを接続します。

代替テキスト

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

代替テキスト

これは少し不可解に見えますが、十分です。私のバージョンでは、わかりやすくするために「Max Age」と「Min Age」というラベルを追加しました。

于 2010-11-22T15:40:11.143 に答える
0

残念ながら、これは Bindings が特に得意とすることではありません。あなたはそれを達成することができますが、それは非常にハッキーです。

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

唯一の「難しい」部分は、コア データを使用している場合、データ ソース クラスが管理対象オブジェクト コンテキストの変更を監視し、データをリロードする必要があることです (-reloadData を使用してテーブル全体を更新するか、-reloadDataForRowIndexes:columnIndexes を使用します)。 : リフレッシュしたい行を選択します)。

于 2010-11-22T14:30:53.620 に答える