2012-08-16 39 views
9

Làm cách nào để đặt vị trí bắt đầu của NSSplitView?Vị trí bắt đầu của NSSplitView divider

Điều gần nhất tôi đã phát hiện ra rằng có vẻ như nó sẽ làm việc là setPosition

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

này dường như không làm gì cả, mặc dù splitview tôi vẫn bắt đầu với việc chia ở trung tâm.

BẤT K ideas ý tưởng?

Trả lời

1

Có thể đó là trung tâm? Nếu splitView được nối chính xác với chế độ xem chia tách của bạn, mã đó sẽ hoạt động. Bạn có lẽ nên đăng nhập [splitView minPossiblePositionOfDividerAtIndex: 0] và [splitView maxPossiblePositionOfDividerAtIndex: 0] trước khi cố gắng đặt vị trí của dải phân cách để bạn biết các giá trị có thể có.

+0

Vâng, đó không phải là trung tâm. Giá trị nhỏ nhất của tôi là 0 và giá trị tối đa của tôi là 999. – arooo

+0

Tôi không biết phải nói gì - nó hoạt động tốt cho tôi. Tôi tự hỏi nếu nó có bất cứ điều gì để làm với các thiết lập khó khăn? Tôi chỉ cần kéo ra một cái nhìn phân chia, thêm một vài nút và các lĩnh vực văn bản cho mỗi bên (vì vậy sẽ có một cái gì đó để xem) và thêm rằng một dòng mã. – rdelmar

+0

Có vẻ như vấn đề nằm ở nơi khác, tôi có cài đặt cho phép người dùng chọn chế độ xem mặc định của họ - nếu tôi đặt chế độ xem với splitView làm chế độ xem mặc định thì phần tách nằm ở giữa. Nếu tôi đặt chế độ xem khác làm chế độ xem chính và nhấp vào chế độ xem với splitView, mọi thứ hoạt động tốt. Bất kỳ ý tưởng gì có thể gây ra điều này? – arooo

2

NSSplitView cần các giới hạn không phải kích thước ban đầu để làm cho bố cục chính xác. Nếu chế độ xem của bạn có kích thước bằng 0 thì nó sẽ không hiển thị bố cục mong đợi.

Cách tốt nhất là cung cấp bố cục khác 0 (đây là những gì IB làm), nhưng đôi khi điều này là không thể.

Nếu bạn không thể cung cấp khác không kích thước, sau đó tôi nghĩ rằng bạn phải cung cấp đúng - (void)splitView:(NSSplitView *)splitView resizeSubviewsWithOldSize:(NSSize)oldSize đại biểu phương pháp thực hiện để bố trí tất cả mọi thứ bằng tay mình. (đây là thực hành tốt nhất hiện tại của tôi)

4

Bạn không đặt vị trí của dải phân cách, bạn đặt kích thước của các bản xem phụ của NSSplitView. Bộ chia sẽ được tự động định vị lại.

Đây là cách tôi vị trí chia và kích thước subview (trong nhanh chóng):

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

Trong nhà lớp học của quan điểm nhìn chia

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

hoặc bất cứ nơi nào bạn muốn nó để bắt đầu.

Các vấn đề liên quan