我正在尝试使用PXListView
来显示包含NSTextField
s的单元格表格,我想改变每个单元格的高度以修复其中的文本。
在我的子类化单元格视图中,我有一个计算单元格高度的高度方法:
- (CGFloat)height{
NSRect textRect = [self.text.attributedStringValue
boundingRectWithSize:NSMakeSize(NSWidth(self.text.frame), 0.0f)
options:NSStringDrawingUsesLineFragmentOrigin];
return MAX(90.0f, NSHeight(textRect)+73.0f);
}
然后在我PXListViewDelegate
的{{1}}方法中,我获取该行的单元格,然后获取该单元格的高度:
heightOfRow
问题是细胞总是- (CGFloat)listView:(PXListView *)listView heightOfRow:(NSUInteger)row{
CustomViewCell *cell = (CustomViewCell *)[listView cellForRowAtIndex:row];
return [cell height];
}
,我相信这是因为我有鸡或蛋的情景。单元格为空,因为从不调用null
,因为高度为零,因此不需要加载单元格。
根据其中的文字改变cellForRow
单元格高度的正确方法是什么?
答案 0 :(得分:1)
我的解决方案是使用表格视图的宽度来计算每个表格单元格的高度:
- (CGFloat)listView:(PXListView *)listView heightOfRow:(NSUInteger)row{
NSRect textRect = [self.text.attributedStringValue
boundingRectWithSize:NSMakeSize(NSWidth(self.tableView.frame), 0.0f)
options:NSStringDrawingUsesLineFragmentOrigin];
return MAX(90.0f, NSHeight(textRect)+73.0f);
}