0

モデルオブジェクトのインスタンスを保持する可変配列があります。そのモデルオブジェクトには、「名前」といういくつかのプロパティがあります。可変配列の初期化または入力に問題はありません。

引き出し付きの窓があります。ドロワーにテーブルを追加しました。ドロワーはテーブルを使用してモデルオブジェクトのいくつかのインスタンスを表示するという考えです。

ドロワーのあるウィンドウのxibにnsarraycontrollerを追加しました。Array Controllerのプロパティで、ObjectControllerをモデルクラスのインスタンスに設定しました。アレイコントローラーバインディングで、ファイル所有者を指すようにコントローラーコンテンツを設定し、モデルキーパスをアレイの名前に設定しました。

テーブルでは、コンテンツをアレイコントローラーにバインドし、コントローラーキーをarrangedObjectsにバインドし、モデルキーパスを名前にバインドします。

私の問題は、可変配列が適切に初期化されて入力されているにもかかわらず、ドロワーのテーブルに1つのエントリが表示されないことです。ここで何かが足りませんか?

4

2 に答える 2

1

2 つの可能性:

まず、間違ったものをバインドしている可能性があります(ここでの説明は少しあいまいです)。テーブルの各列の「値」を配列コントローラーの値にバインドします@"arrangedObjects.propertyName"(First Name 列の ArrangeObjects.firstName など)。テーブル全体をバインドする別の方法がありますが、おそらくの値をバインドするのではなく、テーブルのコンテンツのみをバインドします。

2 つ目:モデル オブジェクトへのアクセサーが KVO に準拠していない可能性もあります。適切な KVO 通知が、モデル配列のセッター アクセサーをラップしていることを確認してください。あなたが@synthesizeそれをしたなら、すべてがうまくいくはずです。アクセサーを手動でコーディングした場合、すべてがうまくいかない可能性があります。:-)

于 2010-01-19T19:46:52.473 に答える
0

tablecellsテーブル列をarraycontrollerにバインドしたと思いますか? Interface Builder で他にできることはないと思います。それ以外の場合は、適切に構成されているように聞こえます。

このような問題のトラブルシューティングにはibtoolをお勧めします。これは、テキスト ダンプを実行するコマンド ライン ツールです。Interface Builder で GUI を使用するよりもコンパクトな形式でバインディングを検査できます。

于 2010-01-19T19:09:08.050 に答える