2010-07-05 11 views

Antwort

1

Vielen Dank für Ihre Anregungen und Hilfe. Dieses Problem ist nun gelöst mit folgendem Code in 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

Die Tabellenansicht Delegierten Protokoll hat eine tableView:heightOfRow, die Sie festgelegt, die Höhe jeder Zeile in der Tabellenansicht können.

+0

Danke für Ihre schnelle Antwort ... können Sie mich empfehlen, wenn es eine Standardmethode ist in der Höhe von Zeile zu berechnen, basierend auf ihrem Inhalt oder ich muß etwas Verhältnis manipulieren : – Devarshi

+1

Das eine Mal, als ich es tat, hörte ich die NSViewFrameDidChangeNotification-Benachrichtigung und, als meine spezielle Ansicht aufkam, griff ich nach seiner Frame-Größe. Ich würde die Größe für die Zeilenzelle speichern und die noteHeightOfRowsWithIndexesChanged-Methode für die Tabelle verwenden, um die Tabelle basierend auf dieser Änderung der Zeilenhöhe zu aktualisieren. Wahrscheinlich nicht der beste Weg, um es zu tun, aber ich musste nur auf eine einzelne Webkit-Ansicht achten, die ich bewegte. Sie können den Code mit MacRuby anstelle von Obj-C unter http://github.com/dj2/Rife/blob/master/lib/application.rb sehen – dj2

+2

Miraaj: Sie können jede Spalte nach ihrer Breite fragen, und Sie können eine Zeichenkette fragen, wie viel Platz sie einnehmen würde, wenn sie in ein Rechteck einer gegebenen Größe (z. B. eines mit der Spaltenbreite und einer sehr großen Höhe) gezeichnet würde. http://developer.apple.com/mac/library/documentation/Cocoa/Reference/ApplicationKit/Classes/NSString_AppKitAdditions/Reference/Reference.html#//apple_ref/occ/instm/NSString/boundingRectWithSize:options:attributes: Für ein Bild, müssen Sie die Mathematik selbst tun, mit dem Seitenverhältnis der Bildgröße. –

Verwandte Themen