我有一個NSSplitView,它有兩個窗格 - 左邊的邊欄表格視圖和右邊的Web視圖。我也有一個代表組的操控性約束這樣的側邊欄:NSSplitView:在窗口調整大小期間控制分隔符的位置
- (CGFloat)splitView:(NSSplitView *)splitView constrainMaxCoordinate:(CGFloat)proposedMax ofSubviewAt:(NSInteger)dividerIndex {
return 500.0f;
}
- (CGFloat)splitView:(NSSplitView *)splitView constrainMinCoordinate:(CGFloat)proposedMinimumPosition ofSubviewAt:(NSInteger)dividerIndex {
return 175.0f;
}
- (BOOL)splitView:(NSSplitView *)splitView canCollapseSubview:(NSView *)subview {
return NO;
}
這意味着,側邊欄可以只有175個500像素之間調整,這使用分配器手柄時工作正常。但是,當調整整個窗口的大小時,分隔符會被重新定位在這些限制之外。
有人知道如何控制這個嗎?
此外:如果我想存儲用戶對側欄寬度的選擇,是否可以將其讀取出來,保存到首選項文件並稍後恢復,或者是否有更直接的方法來執行這個?我注意到窗口的狀態在某些情況下得到保存 - 這是通常發生還是我必須控制它?
在此先感謝
阿恩
對我來說,這並不會在第一次調用setFrame時被調用。但是,如果我繼承NSSplitView並覆蓋resizeSubviewsWithOldSize,那麼確實會調用。 – 2016-09-14 19:00:01