我以前曾经问过这个问题,但我对解决方案不太满意。
我想NSTableView
在 aNSPopover
或 a 中显示 a NSWindow
。
现在,窗口的大小应该随着表格视图而调整。
就像 Xcode 一样:
这使用自动布局相当简单,您只需将内部视图固定到超级视图即可。
我的问题是,我无法确定表格视图的最佳高度。下面的代码枚举了所有可用的行,但它没有返回正确的值,因为表视图还有其他元素,如分隔符和表头。
- (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,在哪里实施?
动机
绝对值得赏金