NSTextView 的内在内容大小
Posted
技术标签:
【中文标题】NSTextView 的内在内容大小【英文标题】:intrinsic content size for NSTextView 【发布时间】:2014-02-19 05:18:53 【问题描述】:我正在继承 NSTextView 并使用以下代码来计算内在内容大小,以便文本视图的高度随着它在我的自动布局约束中的内容而增长。
- (CGSize)intrinsicContentSize
return [[self layoutManager] usedRectForTextContainer:[self textContainer]].size;
除了在初始调用中返回 (0,0) 的大小外,此方法有效。
如果我在创建文本视图后在我的视图中调用 [self setNeedsLayout:YES]
并使 -layout
中的文本视图的内容大小无效,它将为新的空文本视图返回正确的大小。
有没有办法让-intrinsicContentSize
在不更新视图布局的情况下为我的新文本视图返回正确的大小?
【问题讨论】:
致电invalidateIntrinsicContentSize
?
顺便说一句,让文本视图随内容一起增长的常用方法是查看它的contentSize
,它会自动为您维护......
@matt 这就是我在 -layout 中所做的工作,但我不明白为什么我必须第一次在 -layout 中这样做。当文本更改时,我使内容大小无效,效果很好。
@matt NSTextView 没有 contentSize 属性,除非我遗漏了什么。
是的,因为我已经习惯了ios,所以我自然而然地想到了UITextView。请忽略我所说的一切(除非为了以后能开怀大笑)。
【参考方案1】:
查看this thread,其中 Alexander Staubo 分享了您的代码的略微调整版本。这对我有用。
【讨论】:
以上是关于NSTextView 的内在内容大小的主要内容,如果未能解决你的问题,请参考以下文章