Passt die Höhe eines NSTableView automatisch an
Ich habe diese Frage schon einmal gestellt, bin aber mit der Lösung nicht sehr zufrieden.
Passen Sie die Größe von NSTableView automatisch an
Ich möchte ein anzeigenNSTableView
in einemNSPopover
, oder in aNSWindow
.
Jetzt sollte sich die Fenstergröße mit der Tabellenansicht anpassen.
So wie es Xcode macht:
Mit Auto Layout ist dies ziemlich einfach. Sie können die Innenansicht einfach an die Superansicht heften.
Mein Problem ist, dass ich die optimale Höhe der Tabellenansicht nicht herausfinden kann. Der folgende Code listet alle verfügbaren Zeilen auf, gibt jedoch nicht den richtigen Wert zurück, da die Tabellenansicht andere Elemente wie Trennzeichen und den Tabellenkopf enthält.
- (CGFloat)heightOfAllRows:(NSTableView *)tableView {
CGFloat __block height;
[tableView enumerateAvailableRowViewsUsingBlock:^(NSTableRowView *rowView, NSInteger row) {
// tried it with this one
height += rowView.frame.size.height;
// and this one
// height += [self tableView:nil heightOfRow:row];
}];
return height;
}
1. FrageWie kann ich das beheben? Wie kann ich die benötigte Höhe der Tabellenansicht richtig berechnen?
2. FrageWo soll ich diesen Code ausführen?
Ich möchte dies nicht in einem Controller implementieren, da es definitiv etwas ist, das die Tabellenansicht selbst handhaben sollte.
Und ich fand nicht einmal hilfreiche Delegate-Methoden.
Also dachte ich mir, am besten wäre es, wenn Sie eine Unterklasse bilden könntenNSTableView
.
Also meine Frage 2, wo man es umsetzt?
Auf jeden Fall eine Prämie wert