Mam aplikację z opartą na widoku NSTableView
. W tym widoku tabeli znajdują się wiersze zawierające komórki zawierające zawartość składającą się z wielu wierszy NSTextField
z włączonym zawijaniem wyrazów. W zależności od zawartości tekstowej NSTextField
komórki rozmiar wierszy potrzebnych do wyświetlenia komórki będzie różny.
Wiem, że mogę zaimplementować NSTableViewDelegate
metodę - tableView:heightOfRow:
aby zwrócić wysokość, ale wysokość zostanie określona na podstawie zawijania słów użytego na NSTextField
. Zawijanie wyrazów w NSTextField
podobny sposób opiera się na tym, jak szeroka NSTextField
jest…, która jest określana przez szerokość NSTableView
.
Soooo… Myślę, że moje pytanie brzmi… jaki jest dobry wzorzec projektowy do tego? Wygląda na to, że wszystko, czego próbuję, kończy się chaosem. Ponieważ TableView wymaga znajomości wysokości komórek, aby je ułożyć ... i NSTextField
znajomości jego układu, aby określić zawijanie wyrazów ... a komórka potrzebuje wiedzy o zawijaniu słów, aby określić jej wysokość ... to okrągły bałagan ... i doprowadza mnie to do szaleństwa .
Propozycje?
Jeśli ma to znaczenie, wynik końcowy będzie również dostępny do edycji, NSTextFields
który zmieni rozmiar, aby dopasować się do zawartego w nich tekstu. Mam już to działające na poziomie widoku, ale widok tabeli nie dostosowuje jeszcze wysokości komórek. Doszedłem do wniosku, że kiedy już rozwiążę kwestię wysokości, użyję noteHeightOfRowsWithIndexesChanged
metody - , aby poinformować widok stołu o zmianie wysokości… ale nadal będę pytać delegata o wysokość… stąd moja sprawa.
Z góry dziękuję!