2012-08-16 92 views
9

如何設置NSSplitView的起始位置?NSSplitView分隔線的起始位置

我發現的最接近的事情,看起來像它的工作是setPosition兩種

//Set splitView position. 
[splitView setPosition:330 ofDividerAtIndex:0]; 

這似乎並不儘管做任何事情,我仍然SPLITVIEW在中央分隔開始。

任何想法?

回答

1

也許這是中心?如果splitView正確地連接到你的分割視圖,該代碼應該工作。在嘗試設置分隔線的位置之前,您應該記錄[splitView minPossiblePositionOfDividerAtIndex:0]和[splitView maxPossiblePositionOfDividerAtIndex:0],以便知道可能的值。

+0

是的,它不是中心。我的最小值是0,我的最大值是999. – arooo 2012-08-17 02:54:29

+0

我不知道該說什麼 - 它對我來說工作得很好。我想知道它是否與約束設置有關?我只是拖出一個分割視圖,向每一邊添加了幾個按鈕和文本字段(這樣就可以看到)並添加了一行代碼。 – rdelmar 2012-08-17 03:00:46

+0

看起來問題在於其他地方,我有一個允許用戶選擇其默認視圖的設置 - 如果我將splitView設置爲默認視圖,那麼分割位於中心。如果我將另一個視圖設置爲主視圖,並使用splitView一切正常工作,單擊視圖。任何想法可能會導致這種情況? – arooo 2012-08-17 03:37:14

2

NSSplitView需要初始非大小的邊界以使其正確佈局。 如果您的視圖具有零大小,則不會顯示預期的佈局。

最好的辦法是提供非零布局(這是IB做的),但有時這是不可能的。

如果你不能提供非零大小,那麼我認爲你必須提供適當的- (void)splitView:(NSSplitView *)splitView resizeSubviewsWithOldSize:(NSSize)oldSize委託方法實現來自己手動佈局所有東西。 (這是我目前的最佳做法)

4

您不設置分隔符的位置,您設置NSSplitView子視圖的大小。分配器然後自動重新定位。

這是我如何定位我的分頻器和子視圖大小(SWIFT):

let subview: NSView = mySplitView.subviews[1] as NSView 
subview.setFrameSize(NSMakeSize(subview.frame.size.width, 100)) 
0

在視圖中的類住房拆分視圖

override func viewWillAppear() { 
    self.mySplitView.setPosition(120, ofDividerAtIndex: 0) 
} 

或任何你想要它開始。