Ich habe eine Anwendung mit einer Ansicht, die darauf basiert NSTableView
. In dieser Tabellenansicht befinden sich Zeilen mit Zellen, deren Inhalt aus mehreren Zeilen NSTextField
mit aktiviertem Zeilenumbruch besteht. Abhängig vom Textinhalt von NSTextField
variiert die Größe der Zeilen, die zum Anzeigen der Zelle benötigt werden.
Ich weiß, dass ich die NSTableViewDelegate
Methode implementieren kann - tableView:heightOfRow:
um die Höhe zurückzugeben, aber die Höhe wird basierend auf dem Wortumbruch bestimmt, der auf dem verwendet wird NSTextField
. Die Wortumhüllung von NSTextField
basiert in ähnlicher Weise darauf, wie breit das NSTextField
ist ... was durch die Breite von bestimmt wird NSTableView
.
Soooo… ich denke meine Frage ist… was ist ein gutes Designmuster dafür? Es scheint, als wäre alles, was ich versuche, ein kompliziertes Durcheinander. Da die TableView Kenntnisse über die Höhe der Zellen erfordert, um sie auszurichten ... und die NSTextField
Kenntnisse über das Layout, um den Zeilenumbruch zu bestimmen ... und die Zelle Kenntnisse über den Wortumbruch benötigt, um die Höhe zu bestimmen ... ist es ein kreisförmiges Durcheinander ... und es macht mich wahnsinnig .
Vorschläge?
Wenn es darauf ankommt, kann das Endergebnis auch bearbeitet werden NSTextFields
, um die Größe an den darin enthaltenen Text anzupassen. Ich habe dies bereits auf der Ansichtsebene ausgeführt, aber die Tabellenansicht passt die Höhe der Zellen noch nicht an. Ich denke, sobald ich das Höhenproblem gelöst habe, werde ich das -noteHeightOfRowsWithIndexesChanged
-Methode verwenden, um die Tabellenansicht über die geänderte Höhe zu informieren ... aber dann wird der Delegierte immer noch nach der Höhe gefragt ... daher mein Dilemma.
Danke im Voraus!