Dziękuję wszystkim za sugestie i pomoc. Ten problem został rozwiązany za pomocą następującego kodu w 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;
Dzięki za szybką odpowiedź ... może mi zasugerować jeśli istnieje jakiś standardowy sposób obliczyć wysokość wiersza na podstawie jego treści czy mam jakiś stosunek do manipulowania : na podstawie znaków w łańcuchu i szerokości wiersza .. – Devarshi
Kiedy to robiłem, słuchałem powiadomienia NSViewFrameDidChangeNotification, a gdy pojawił się mój widok, chwyciłem jego rozmiar klatki. Przechowywałbym rozmiar komórki wiersza i używałam metody noteHeightOfRowsWithIndexesChanged w tabeli, aby informować tabelę o aktualizacji w zależności od zmiany wysokości wiersza. Prawdopodobnie nie jest to najlepszy sposób na zrobienie tego, ale musiałem tylko obejrzeć pojedynczy widok webkita, który poruszałem. Możesz zobaczyć kod, używając MacRuby zamiast Obj-C, pod adresem http://github.com/dj2/Rife/blob/master/lib/application.rb – dj2
Miraaj: Możesz zapytać każdą kolumnę o jej szerokość, i możesz zapytać ciąg, ile miejsca zajmie, jeśli zostanie narysowany w prostokąt o danym rozmiarze (np. jeden z szerokością kolumny i bardzo dużą wysokością). http://developer.apple.com/mac/library/documentation/Cocoa/Reference/ApplicationKit/Classes/NSString_AppKitAdditions/Reference/Reference.html#//apple_ref/occ/instm/NSString/boundingRectWithSize:options:attributes: For an obrazek, będziesz musiał sam wykonać obliczenia, używając współczynnika kształtu obrazu. –