0

CSV ファイルから取得したエントリを入力したい 2 列の NSTableView があります。各表セルのタイトルが設定されていないことを除いて、すべて正常に機能します。

NSArray の各行に対して呼び出される関数は次のとおりです。

- (void)populateTable:(NSString *)fname :(NSString *)lname {
    NSMutableDictionary *value = [[NSMutableDictionary alloc] init];
    [value setObject:[NSString stringWithFormat:@"%@", fname] forKey:@"first_name"];
    [value setObject:[NSString stringWithFormat:@"%@", lname] forKey:@"last_name"];

    [arrayController addObject:value];
    [value release];
    [fname_list reloadData];
    [lname_list reloadData];
}

「last name」列の値は、Array Controller ArrangeObjects.last_name にバインドされ、 first_name」と「last_name」の両方が、Array Controller > Object Controller > Keysリストにキーとしてリストされます。

適切な数のテーブル セルが作成されます (CSV ファイル内の 3 つのエントリ = 各列に 3 行) が、各セルのタイトルが設定されていません (列に応じて「first_name」または「last_name」のいずれかに設定されます)。 ; セルのタイトルは「Table View Cell」のままです

編集:

navinsillu の変更を使用した後、次の関数になります。

- (void)populateTable:(id)sender :(NSString *)fname :(NSString *)lname {
    [arrayController insert:sender];
    [[[self arrayController] selection] setValue:fname forKeyPath:@"first_name"];
    [[[self arrayController] selection] setValue:lname forKeyPath:@"last_name"];

    [fname_list reloadData];
    [lname_list reloadData];
}

そして、私のヘッダーには

@property (retain,nonatomic,readwrite) IBOutlet NSArrayController *arrayController;

しかし、それでも同じ結果が得られます。各テーブル列に3行/セルがあり、すべて「テーブルビューセル」というタイトルです

編集:

いくつかの検査の後、テーブル列Model Key Pathのバインドの下にValueエントリがないことに気付きました。first_nameまたはlast_nameを入力すると、配列コントローラーのリストにキーがリストされていても、補完が見つかりませんと表示されます。Keys残念ながら、キーが見つからない理由はわかりません。

編集:

奇数。テーブルビューとアレイコントローラーを削除して追加しようとしましたが、うまくいきませんでした。ただし、新しいプロジェクトを作成してまったく同じことを行うと、期待どおりの結果が得られます。

4

2 に答える 2

0

私が持っていたのとまったく同じ方法でプロジェクトを再作成すると、私が期待していたことが起こります。やり直しがうまくいった理由はわかりませんが、うまくいきました。

于 2012-10-25T05:35:58.070 に答える
0

Interface Builder のテーブル ヘッダーにタイトルを設定できます。テーブルの列ヘッダーをダブルクリックして、タイトルを設定できます。このように、ヘッダーをテーブルの列に設定できます

于 2012-10-23T04:42:54.453 に答える