2010-07-05 16 views

Respuesta

1

Gracias por sus sugerencias y ayuda. Este problema ya se ha resuelto utilizando el código siguiente en 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; 
5

El protocolo vista delegado tabla tiene una tableView:heightOfRow que le permite ajustar la altura de cada fila en la vista de tabla.

+0

gracias por su respuesta rápida ... ¿me pueden sugerir si hay alguna manera estándar para calcular la altura de la fila en función de su contenido o que tienen alguna relación de manipular : basado en los caracteres de la cadena y el ancho de la fila ... – Devarshi

+1

La única vez que lo estaba escuchando la notificación NSViewFrameDidChangeNotification y, cuando apareció mi vista específica, agarré su tamaño de fotograma. Almacenaba el tamaño de la celda de fila y utilizaba el método noteHeightOfRowsWithIndexesChanged en la tabla para indicar a la tabla que actualizara en función de ese cambio de altura de fila. Probablemente no sea la mejor manera de hacerlo, pero solo tenía que mirar una sola vista de webkit que me estaba moviendo. Puede ver el código, usando MacRuby en lugar de Obj-C, en http://github.com/dj2/Rife/blob/master/lib/application.rb – dj2

+2

Miraaj: puede solicitar a cada columna su ancho, y puede preguntar a una cuerda cuánto espacio ocuparía si se dibujara en un rectángulo de un tamaño dado (por ejemplo, uno con el ancho de la columna y una altura muy grande). http://developer.apple.com/mac/library/documentation/Cocoa/Reference/ApplicationKit/Classes/NSString_AppKitAdditions/Reference/Reference.html#//apple_ref/occ/instm/NSString/boundingRectWithSize:options:attributes: para un imagen, tendrá que hacer las matemáticas usted mismo, usando la relación de aspecto del tamaño de la imagen. –

Cuestiones relacionadas