我有一個自定義的NSView子類,我把它放在一個NSScrollView中,基本工作正常。它總是佔用其可用空間的全部寬度,所以它的約束佔據了滾動視圖的整個寬度。它佔用多少垂直空間取決於它需要顯示多少數據,因此它只能垂直滾動。這很好。在NSScrollView中自定義NSView,佔用整個可見空間
問題是,如果我的自定義視圖需要的空間少於它所在的NSScrollView空間,則它不會展開以填充可見區域。在數據量少於可見區域的情況下,我希望它向下擴展 - 以便空間可作爲拖放目標等等。
我試過改變它的「擁抱優先權」。我試着添加一個約束來將底部保持在NSClipView的底部之下。我不能想出任何基於約束的解決方案來解決這個問題(儘管我還沒有排除這種可能性)。
我試圖捕捉通知時NSScrollView改變大小,並調整自定義視圖的框架,如果是太小了,但(大概是因爲我只能改變其當前幀,而佈局系統完成所有佈局以後)我似乎也無法完成這項工作。
是否有將NSScrollView視圖添加到可見區域底部的技巧,只要它本來太短?它看起來應該是如此簡單,而且我之前完成了這個工作,我只是手動調用了-setFrame
,但是一旦移動到自動佈局世界,該方法就會停止工作。
您是否嘗試添加高度約束「yourView.height> = parentView.height」,其中parentView是clipview? 我有一個類似的問題,因爲你和以下爲我工作: myView.width> = clipview.width, myview.height> = clipview.height; 並擺脫IB錯誤: myview.centerXY = clipview.centerXY(在構建時刪除), 爲myview的intrinsicSize設置佔位符 –