我遇到的問題必須與可可的座標系統,但我真的不知道。這一切都發生在水平NSSplitView
的頂部窗格中。重新定位水平NSSplitView的頂部窗格中的NSBox
很簡單,我試圖在第二個下面放置一個NSBox
(我將自定義視圖加載到框中 - 所有工作正常)。頂部框的左上角位於窗格的左上角,從不改變。如果頂部NSBox
的高度縮小,我希望第二個NSBox
的頂部向下滑動。相反,如果頂部NSBox's
高度增加,我想底部NSBox
下滑。
該代碼被調用兩次。盒子是正確的(第一次頂盒,第二次底盒)和v是正確的(這是我加載到框中的視圖 - 這工作正常,這是什麼導致高度在頂盒中改變)。
NSSize destBoxSize = [[box contentView] frame].size; //the size of the box in the view to load the view into
NSSize newViewSize = [v frame].size; // the size of the view to be loaded
float deltaWidth = [horizSplitView frame].size.width - destBoxSize.width;
float deltaHeight = newViewSize.height - destBoxSize.height;
NSRect boxFrame = [box frame];
boxFrame.size.height += deltaHeight;
boxFrame.size.width += deltaWidth;
boxFrame.origin.y -= deltaHeight;
NSLog(@"vc=%@ boxFrame x%f y%f h%f w%f", nibName, boxFrame.origin.x, boxFrame.origin.y, boxFrame.size.height, boxFrame.size.width);
// Clear the box for resizing
[box setContentView:nil];
[box setContentView:v];
[box setFrame:boxFrame];
如果您爲代碼的每一行添加四個空格,則會突出顯示;這樣就更容易閱讀它,並在其他詞之間看到它。 – kiamlaluno 2009-12-22 04:56:26
「我試圖在第二個下面放置一個NSBox(我將自定義視圖加載到框中 - 所有工作都正常)。 ...如果頂部NSBox的高度收縮,我希望第二個NSBox的頂部向下滑動。相反,如果頂部NSBox的高度增加,我想讓底部的NSBox滑下來。「你的意思是下部框的高度永遠不變?那麼什麼填補了空間? – 2009-12-22 05:32:30
請用代碼按鈕(101 010)格式化您的代碼。只需選擇代碼(包含註釋),剪下它,單擊編輯器的代碼按鈕,然後再次將代碼粘貼到「在此處輸入代碼」的位置。 – 2009-12-22 11:44:58