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

Cocoa 如何根据表中的内容设置行高?,cocoa,nstableview,Cocoa,Nstableview,通常,表有固定的行高,但根据我的要求,我需要根据其中的内容设置每行的高度 有人能给我一些解决办法吗 谢谢 Miraaj表格视图委派协议具有一个允许您设置表格视图中每行高度的选项。感谢所有人的建议和帮助。现在,使用tableView:heightOfRow: float colWidth = [[[tableView tableColumns] objectAtIndex:1]width]; NSString *content = [[[tempArray objectAtIndex:row]

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

有人能给我一些解决办法吗

谢谢


Miraaj

表格视图委派协议具有一个允许您设置表格视图中每行高度的选项。

感谢所有人的建议和帮助。现在,使用
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;
float colWidth=[[[tableView tableColumns]对象索引:1]宽度];
NSString*content=[[tempArray objectAtIndex:row]objectForKey:@“tValue”]string];
float textWidth=[content SizeWidthAttributes:[NSFontDictionary Dictionary WithObjects and Keys:[NSFont fontWithName:@“Lucida Grande”大小:15],NSFontAttributeName,nil].宽度;
float newHeight=ceil(textWidth/colWidth);
新高度=(新高度*17)+13;
如果(新高度<47){
返回47;
}   
返回新高度;

谢谢您的快速回复。。。你能建议我是否有一些标准的方法来根据行的内容计算行的高度,或者我必须操纵一些比率:基于字符串中的字符和行的宽度..有一次我这样做的时候,我正在听NSViewFrameDidChangeNotification通知,当我的特定视图出现时,我抓住了它的帧大小。我会存储行单元格的大小,并在表上使用NoteHeightOfRowsWithIndexChanged方法来告诉表根据行高的变化进行更新。也许这不是最好的方法,但我只需要观察我正在移动的单个webkit视图。您可以在Miraj上看到使用MacRuby而不是Obj-C的代码:您可以询问每一列的宽度,您可以询问一个字符串,如果将其绘制成给定大小的矩形(例如,具有该列宽度和非常大高度的矩形),它将占用多少空间:对于图像,您必须使用图像大小的纵横比自己进行计算。