Automatycznie dostosuj wysokość NSTableView
Zadałem to pytanie już wcześniej, ale nie jestem bardzo zadowolony z rozwiązania.
Automatycznie dostosuj rozmiar NSTableView
Chcę wyświetlić aNSTableView
wNSPopover
lub wNSWindow
.
Teraz rozmiar okna powinien się dostosować w widoku tabeli.
Podobnie jak Xcode to robi:
Jest to dość proste dzięki automatycznemu układowi, możesz po prostu przypiąć widok wewnętrzny do super widoku.
Moim problemem jest to, że nie mogę określić optymalnej wysokości widoku tabeli. Poniższy kod wylicza wszystkie dostępne wiersze, ale nie zwraca poprawnej wartości, ponieważ widok tabeli ma inne elementy, takie jak separatory i głowa tabeli.
- (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. PytanieJak mogę to naprawić? Jak mogę poprawnie obliczyć wymaganą wysokość widoku tabeli.
2. PytanieGdzie powinienem uruchomić ten kod?
Nie chcę tego implementować w kontrolerze, ponieważ jest to zdecydowanie coś, co powinien obsługiwać sam widok tabeli.
I nawet nie znalazłem żadnych pomocnych metod przekazywania.
Więc pomyślałem, że najlepiej byłoby, gdybyś mógł podklasowaćNSTableView
.
Więc moje pytanie 2, gdzie go wdrożyć?
Na pewno warta nagroda