3
我對NSTextView進行了子類化,並使用以下代碼來計算內在內容大小,以便在我的自動佈局約束中文本視圖的高度隨其內容增長。NSTextView的內在內容大小
- (CGSize)intrinsicContentSize
{
return [[self layoutManager] usedRectForTextContainer:[self textContainer]].size;
}
這個工作除了初始調用,它返回(0,0)的大小。
如果在創建文本視圖並在-layout
中使文本視圖的內容大小無效後,我在我的視圖中調用[self setNeedsLayout:YES]
,它將返回新空文本視圖的正確大小。
有沒有辦法讓-intrinsicContentSize
爲我的新文本視圖返回正確的大小而不更新視圖的佈局?
調用'invalidateIntrinsicContentSize'? – matt
順便說一句,使文本視圖與其內容一起成長的通常方法是看它的'contentSize',它會自動爲您維護.... – matt
@matt這就是我在-layout中所做的工作但我不明白爲什麼我必須在第一次佈置時這樣做。當文本更改正常時,我會使內容大小無效。 –