2010-07-05 16 views

Odpowiedz

1

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; 
5

Protokół widok delegat tabela ma tableView:heightOfRow który pozwala ustawić wysokość każdego wiersza w widoku tabeli.

+0

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

+1

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

+2

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. –

Powiązane problemy