Ich habe eine view-basierte NSTableView
. Ich positionierte die textField
und andere Elemente in einem NSTableCellView
im Interface Builder mit automatischem Layout. Wie kann ich die Höhe für die Zelle anhand ihrer automatischen Layoutparameter ermitteln?
Diese Antwort ist das, was ich am meisten gesucht habe, aber es ist für iOS geschrieben und die Methode systemLayoutSizeFittingSize
existiert nicht auf NSView
.
Sie können die Ansichten innerhalb Ihrer Tabellenzellenansicht in eine separate NSView
(nennen wir diese Ansicht contentView
). Setzen Sie die automatischen Layouteinschränkungen für contentView
so, dass sie an der übergeordneten Ansicht links (oben), oben und rechts (nachlaufend) ausgerichtet sind. Stellen Sie sicher, dass die Unteransichten von contentView
die Größe ihrer übergeordneten Ansicht ändern. Erstellen Sie IBOutlet
für diese Ansicht in Ihrer NSTableCellView
Unterklasse Um die Höhe zu berechnen, rufen Sie fittingSize
für contentView
, die basierend auf den Einschränkungen die minimale Größe Ihrer Subviews erhalten soll.
Tags und Links macos nstableview autolayout nsautolayout nstablecellview