OSX NSTableCellView动态高度与nstexfield多行自动布局

时间:2017-02-08 05:46:10

标签: macos cocoa autolayout nstableview nstablecellview

我有一个基于视图的NSTableView和NSTableCellView子类,它具有多行NSTextField并启用了自动换行。现在我希望我的表根据文本字段内容具有动态行高。 Autolayout也已启用。

Textfield的约束显示在图像中:

enter image description here

Tableview heightForRow方法代码:

- (CGFloat)tableView:(NSTableView *)tableView heightOfRow:(NSInteger)row {

    VerseTableCell *cell = [self getTableCellForRow:row];
    [cell.txtSuraDetail invalidateIntrinsicContentSize];
    [cell invalidateIntrinsicContentSize];
    [cell setTranslatesAutoresizingMaskIntoConstraints:YES];

    [cell layout];
    [cell setNeedsDisplay:YES];
    [cell setNeedsUpdateConstraints:YES];
    [cell setNeedsLayout:YES];
    [cell layoutSubtreeIfNeeded];

    NSRect size = cell.txtSuraDetail.frame;

    CGFloat height = (size.size.height) + 30;

    return height;
   }

单元格布局方法:

- (void)layout {
[super layout];
self.txtSuraDetail.preferredMaxLayoutWidth = self.txtSuraDetail.frame.size.width;
}

我试过this& this链接但没有任何帮助,textfield的文字仍在剪辑。

任何帮助将不胜感激。 提前致谢

0 个答案:

没有答案