如何根据表中的内容设置行高?

时间:2010-07-05 15:01:14

标签: cocoa nstableview

通常,表格具有固定的行高,但根据我的要求,我需要根据其中的内容设置每行的高度。

有人能建议我一些解决方案吗?

谢谢,

Miraaj

2 个答案:

答案 0 :(得分:5)

表视图委托协议有一个tableView:heightOfRow,可让您在表格视图中设置每一行的高度。

答案 1 :(得分:1)

感谢大家的建议和帮助。现在使用tableView:heightOfRow:

中的以下代码解决此问题
float colWidth = [[[tableView tableColumns] objectAtIndex:1]width];

NSString *content = [[[tempArray objectAtIndex:row] objectForKey:@"tValue"] string];

float textWidth = [content sizeWithAttributes:[NSDictionary dictionaryWithObjectsAndKeys:[NSFont fontWithName:@"Lucida Grande" size:15],NSFontAttributeName ,nil]].width;

float newHeight = ceil(textWidth/colWidth);

newHeight = (newHeight * 17) + 13;
if(newHeight < 47){
    return 47;
}   
return newHeight;