NSTableView 单元格文本未更改

NSTableView cell text not changed

我在 osx 应用程序中使用 NSTableView

- (NSInteger)numberOfRowsInTableView:(NSTableView *)tableView {
    if (tableView == self.categoryTable) {
        return [[[AppAPI shared] categoryArr] count];
    }
    return 0;
}

- (nullable id)tableView:(NSTableView *)tableView objectValueForTableColumn:(nullable NSTableColumn *)tableColumn row:(NSInteger)row {
    if (tableView == self.categoryTable) {
        NSTableCellView *cellView = [tableView makeViewWithIdentifier:tableColumn.identifier owner:self];

        CategoryItem * cat = [[AppAPI shared] categoryArr][row];

        cellView.textField.stringValue = cat.name;

        return cellView;
    }

    return nil;
}

我使用此代码将数据插入 table,但我得到的只是包含以下文本的行:

cellView不为零

知道为什么会这样吗?

您使用了错误的委托/数据源方法

objectValueForTableColumn:row 应该是 return 行的对象

- (id)tableView:(NSTableView *)tableView objectValueForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row {
    return [[AppAPI shared] categoryArr][row];
}

viewForTableColumn:row: return 视图。

- (NSView *)tableView:(NSTableView *)tableView viewForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row {
    return [tableView makeViewWithIdentifier:tableColumn.identifier owner:self];
}

PS:您的设计中有多少 table 个视图需要您检查是否正确?