首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何向NSTableCellView添加子类?

如何向NSTableCellView添加子类?
EN

Stack Overflow用户
提问于 2015-02-25 15:29:40
回答 1查看 2.7K关注 0票数 4

我在IB中向NSTable添加了图像和文本表格单元格视图。文本表格单元格视图中有一个TextFiled和一个ImageView,所以我的代码如下所示:

代码语言:javascript
复制
- (NSView *)tableView:(NSTableView *)tableView viewForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row{
    NSString *iden = [ tableColumn identifier ];
    if ([iden isEqualToString:@"MainCell"]) {
        NSTableCellView *cell = [ tableView makeViewWithIdentifier:@"MainCell11" owner:self ];
        [cell.textField setStringValue:@"123"];
        [cell.imageView setImage:[[NSImage alloc] initByReferencingFile:@"/Users/Pon/Pictures/17880.jpg"]];
        return cell;
    }
    return nil; 
}

我发现textfield和imageView有默认的出口,所以我可以使用cell.textFiled访问这个textField对象并更改它的值。这是我的问题,如果我在这个图像&文本表格单元格视图中添加一个额外的TextField,那么在一个列中有两个TextField,那么如何才能得到由我添加的第二个TextFiled,更改TextFiled的值呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-27 07:26:36

就像它在NSTableCellView类引用页面上说的

可以通过子类NSTableCellView和添加所需的属性并以编程方式或在Interface中连接这些属性来添加其他属性。

创建您的NSTableCellView子类(例如'CustomTableCellView'),定义一个额外的文本字段outlet属性(图像视图和第一个文本字段在超类中定义)。在Interface中设置单元格原型的类,并将附加文本字段控件连接到属性。

在您的NSTableViewDelegate类中:

代码语言:javascript
复制
- (NSView *)tableView:(NSTableView *)tableView viewForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row{
    NSString *iden = [ tableColumn identifier ];
    if ([iden isEqualToString:@"MainCell"]) {
        CustomTableCellView *cell = [ tableView makeViewWithIdentifier:@"MainCell11" owner:nil ]; // use custom cell view class
        [cell.textField setStringValue:@"123"];
        [cell.imageView setImage:[[NSImage alloc] initByReferencingFile:@"/Users/Pon/Pictures/17880.jpg"]];
        [cell.addinitionalField setStringValue:@"321"]; // that is all
        return cell;
    }
    return nil; 
}
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28722942

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档