gpt4 book ai didi

macos - 操作系统: NSTableView cells with multiple lines?

转载 作者:行者123 更新时间:2023-12-03 17:53:19 25 4
gpt4 key购买 nike

NSTableView 单元格具有多行的最佳方式是什么?比如说 5 个或 6 个?

我知道这个问题和答案“iOS: UITableView cells with multiple lines? ”,但该机制在 OSX 上似乎有所不同。

最佳答案

基于这个答案View-based NSTableView with rows that have dynamic heights :

在您的 NSTableView 的委托(delegate)中:

@interface MenuDelegate ()

@property (nonatomic, weak) NSArrayController * theArrayController ;

@property (nonatomic, strong) NSTextFieldCell * anExtraTextFieldCell ;
@property (nonatomic) NSRect tallRect ;

@end



@implementation MenuDelegate



#pragma mark - Initialisations


- (id)initwithArrayController:(NSArrayController *)theArrayController;
{
self = [super init] ;

if (self)
{
self.theArrayController = theArrayController ;

self.anExtraTextFieldCell = [[NSTextFieldCell alloc] init] ;
}

return self ;
}



- (CGFloat) tableView:(NSTableView *)tableView
heightOfRow:(NSInteger)row {

if (!self.tallRect.size.width)
{
NSTableColumn * firstColum = tableView.tableColumns[0] ;
self.tallRect = NSMakeRect(0, 0, firstColum.width, CGFLOAT_MAX);
}

// Access the content of the cell.
NSString * content = [self.theArrayController.arrangedObjects[row] valueForKey:@"title"] ;
self.anExtraTextFieldCell.stringValue = content ;

CGFloat result = [self.anExtraTextFieldCell cellSizeForBounds:self.tallRect].height + 5;


if (result < [tableView rowHeight])
{
result = [tableView rowHeight] ;
}

return result ;
}

关于macos - 操作系统: NSTableView cells with multiple lines?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18646697/

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