2010-07-05 4 views

risposta

1

Grazie a tutti per i vostri suggerimenti e aiuto. Questo problema è ora risolto utilizzando il codice seguente 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

Il protocollo di vista delegato tavolo ha un tableView:heightOfRow che consente di impostare l'altezza di ogni riga nella vista tabella.

+0

grazie per la risposta rapida ... mi puoi suggerire se c'è qualche modo standard per calcolare altezza della riga in base al suo contenuto o devo manipolare qualche rapporto : basato sui caratteri nella stringa e nella larghezza della riga. – Devarshi

+1

L'unica volta che lo stavo ascoltando la notifica NSViewFrameDidChangeNotification e, quando è stata visualizzata la mia specifica vista, ho afferrato la sua dimensione del fotogramma. Memorizzerei la dimensione per la cella di riga e userei il metodo noteHeightOfRowsWithIndexesChanged sulla tabella per dire alla tabella di aggiornarsi in base alla variazione dell'altezza di quella riga. Probabilmente non è il modo migliore per farlo, ma ho dovuto solo guardare una singola vista webkit che mi stavo muovendo. Puoi vedere il codice, usando MacRuby invece di Obj-C, su http://github.com/dj2/Rife/blob/master/lib/application.rb – dj2

+2

Miraaj: puoi chiedere a ciascuna colonna la sua larghezza, e puoi chiedere a una stringa quanto spazio occuperebbe se disegnato in un rettangolo di una determinata dimensione (ad esempio, uno con la larghezza della colonna e l'altezza molto 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: per un immagine, dovrai fare i conti da solo, usando le proporzioni della dimensione dell'immagine. –