2010-07-05 4 views

Répondre

1

Merci à tous pour vos suggestions et votre aide. Ce problème est maintenant résolu en utilisant le code suivant dans 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

La vue table du protocole délégué a un tableView:heightOfRow qui vous permet de définir la hauteur de chaque ligne de la vue de la table.

+0

Merci pour votre réponse rapide ... pouvez-vous me suggérer s'il y a une méthode standard pour calculer la hauteur de la ligne en fonction de son contenu ou je dois manipuler un certain rapport : basé sur les caractères dans la chaîne et la largeur de la ligne .. – Devarshi

+1

La fois où je le faisais j'écoutais la notification NSViewFrameDidChangeNotification et, quand ma vue spécifique est apparue, j'ai saisi sa taille d'image. Je stocker la taille pour la cellule de ligne et utiliser la méthode noteHeightOfRowsWithIndexesChanged sur la table pour indiquer à la table de mettre à jour en fonction de la modification de la hauteur de cette ligne. Probablement pas le meilleur moyen de le faire, mais je n'ai eu qu'à regarder pour une seule vue webkit que je me déplaçais. Vous pouvez voir le code, en utilisant MacRuby au lieu de Obj-C, à http://github.com/dj2/Rife/blob/master/lib/application.rb – dj2

+2

Miraaj: Vous pouvez demander à chaque colonne pour sa largeur, et vous pouvez demander à une ficelle combien d'espace il prendrait s'il était dessiné dans un rectangle d'une taille donnée (par exemple, un avec la largeur de la colonne et une très grande hauteur). http://developer.apple.com/mac/library/documentation/Cocoa/Reference/ApplicationKit/Classes/NSString_AppKitAdditions/Reference/Reference.html#//apple_ref/occ/instm/NSString/boundingRectWithSize:options:attributes: Pour un image, vous devrez faire le calcul vous-même, en utilisant le ratio d'aspect de la taille de l'image. –

Questions connexes