Автоматическая настройка высоты NSTableView
Я задал этот вопрос однажды, но ям просто не очень доволен решением.
Автоматически настраивать размер NSTableView
Я хочу отобразитьNSTableView
вNSPopover
или в.NSWindow
Теперь окноРазмер должен быть скорректирован с учетом таблицы.
Как это делает Xcode:
С Auto Layout это довольно просто, вы можете просто прикрепить внутренний вид к суперпросмотру.
Моя проблема в том, что я могуt определить оптимальную высоту вида таблицы. Следующий код перечисляет все доступные строки, но это неt вернуть правильное значение, потому что табличное представление имеет другие элементы, такие как разделители и заголовок таблицы.
- (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. ВопросКак я могу это исправить? Как я могу правильно рассчитать необходимую высоту представления таблицы.
2. ВопросГде я должен запустить этот код?
Я нене хочу реализовать это в контроллере, потому что этоЭто определенно то, что табличное представление должно обрабатывать сам.
И я неЯ даже не нашел никаких полезных методов делегата.
Так что я решил, что лучше всего было бы, если бы вы могли подкласс.NSTableView
Итак, мой вопрос 2, где это реализовать?
Определенно стоит награды