gpt4 book ai didi

macos - 如何向 NSTableCellView 添加子类?

转载 作者:行者123 更新时间:2023-12-03 16:18:33 28 4
gpt4 key购买 nike

我将图像和文本表单元格 View 添加到 IB 中的 NSTable。 Text Table Cell View中有一个TextFiled和一个ImageView,所以我的代码如下所示:

- (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都有默认的outlet,所以我可以使用cell.textFiled来访问这个textField对象并更改它的值。这是我的问题,如果我向此图像和文本表单元格 View 添加一个额外的 TextField,一列中有两个 TextField,那么如何获取我添加的第二个 TextFiled,更改 TextFiled 的值?

最佳答案

正如 NSTableCellView Class Reference 中所述页面

Additional properties can be added by subclassing NSTableCellView and adding the required properties and connecting them programmatically or in Interface Builder.

创建 NSTableCellView 子类(例如“CustomTableCellView”),定义一个附加文本字段导出属性( ImageView 和第一个文本字段在父类(super class)中定义)。在 Interface Builder 中设置单元原型(prototype)的类,并将附加文本字段控件连接到您的属性。

在你的 NSTableViewDelegate 类中:

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

关于macos - 如何向 NSTableCellView 添加子类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28722942/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com