objective-c - 如何在 NSTableView 中重用单元格?

标签 objective-c macos nstableview

我有一个包含 10 个单元格的 NSTableView。它们都是相同的单元格,我想重复使用它们,但我似乎无法让表格 View 这样做。

目前,每次需要一个新的单元格时,委托(delegate)似乎无法找到具有相同标识符的前一个单元格,必须重新创建它。

下面是我的代码,对我可能做错的地方有什么建议吗?

- (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;
}

最佳答案

我做了一些测试,发现表格会不断创建新的单元格,直到表格无法同时显示所有单元格。

此时,表格将重用不可见的单元格。

关于objective-c - 如何在 NSTableView 中重用单元格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13107194/

相关文章:

objective-c - xib中基于嵌套 View 的NSTableViews

cocoa - NSTableView 删除应用程序文件,出了什么问题?

objective-c - 为 NSNotifications 注册所有 View Controller

objective-c - 以编程方式检测对象层次结构中的保留周期的策略可能是什么?

ios - 从 Facebook 请求用户信息和好友信息

ios - 如何在 OS X 上旋转 NSTextField?

c - 在 Swift 3 中使用具有回调函数指针作为参数的 C API 函数

ios - 如何使用 PHImageManager 获取原始图像

macos - 添加框架后的 Xcode 5.1 编译器错误

objective-c - 使用 IPv4 地址对 NSTableView 列进行排序