5

私はNSTableView10個のセルを持っています。それらはすべて同じセルであり、再利用したいのですが、テーブルビューで再利用できないようです。

現在、新しいセルが必要になるたびに、デリゲートは同じ識別子を持つ前のセルを見つけることができないようであり、それを再作成する必要があります。

以下は私のコードです、私が間違っているかもしれないことについての提案はありますか?

- (NSInteger)numberOfRowsInTableView:(NSTableView *)aTableView
{
    return 10;
}


- (NSView *)tableView:(NSTableView *)tableView viewForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row
{
    static NSString *cellIdentifier = @"Name";

    NSTableCellView *cellView = [tableView makeViewWithIdentifier:cellIdentifier owner:self];

    if (cellView == nil)
    {
        NSLog(@"A cell");
        NSRect cellFrame = [_scrollView.contentView bounds];
        cellFrame.size.height = 65;

        cellView = [[NSTableCellView alloc] initWithFrame:cellFrame];
        [cellView setIdentifier:cellIdentifier];
    }

    return cellView;
}
4

1 に答える 1

8

いくつかのテストを行ったところ、テーブルがすべてのセルを同時に表示できなくなるまで、テーブルが継続的に新しいセルを作成することに気付きました。

この時点で、テーブルは表示されていないセルを再利用します。

于 2012-11-02T22:53:31.243 に答える