2012-07-30 39 views
5

Tôi muốn triển khai một khung 3 chiều dọc NSSplitView (rất giống với Mail.app). Tôi không thực sự chắc chắn bắt đầu từ đâu. Tôi khá chắc chắn tôi cần phải thực hiện một NSSplitViewDelegate, nhưng tôi không chắc chắn phương pháp và/hoặc triển khai của họ.Làm cách nào để triển khai NSSplitView 3 khung với kích thước tối thiểu và tối đa?

Cách bố trí tôi muốn là như sau:

+----------+------------------+------------------------------------+ 
|   |     |         | 
|   |     |         | 
|   |     |         | 
|   |     |         | 
| Pane 1 |  Pane 2  |    Pane 3    | 
|   |     |         | 
|   |     |         | 
|   |     |         | 
|   |     |         | 
|   |     |         | 
+----------+------------------+------------------------------------+ 

Tôi muốn thực hiện những hạn chế sau đây cho mỗi tấm:

  • Pane 1: 140pt tối thiểu. Tối đa: 400pt.
  • Pane 2: Tối thiểu 250pt.
  • Pane 3: Tối thiểu 400pt.

Bất kỳ con trỏ nào cũng sẽ được đánh giá cao.

+1

xem có thể theo cấp bậc, do đó bạn có thể xem xét làm hai cấp độ của split-view: một ở phía trên cùng với "Pane 3" ở bên phải và một split-view thứ 2 bên trái (có chứa "Pane 1 "và" Pane 2 "). Tôi đã không thử điều đó nhưng nó có vẻ là cách đơn giản nhất để thực hiện công việc này. –

+0

Hướng dẫn tuyệt vời tại đây: http://www.youtube.com/watch?v=k3XLInzZIs8 – siekfried

Trả lời

0

Tôi đoán bạn đã giải quyết vấn đề này. Dù sao, có hai cách. Đầu tiên là giống như câu trả lời ở trên, kéo một phân chia nơi bạn muốn, và kéo một phân chia thứ hai bên trong một trong các thùng chứa (subview của splitview). Quan điểm hệ thống quyền cũng giống như

Window 
Window containerview 
     Splitview 
      Containerview_left | containerview_right 
            Splitview 
             Containerview_left | containerview_right 

Nếu bạn theo mã, sau đó bạn tạo một splitview, thêm nó như là một subview của cửa sổ, nhìn. Sau đó, bạn tạo các bản xem lại chia nhỏ bằng cách thêm chúng bằng cách sử dụng [splitview addsubview] nếu bạn thêm ba bản phụ, bạn có hai trình tạo. Cấu trúc phân cấp khác nhau.

Window Window containerview 
     Splitview 
      Containerview_ind(0)| Containerview_ind(1) | Containerview_ind(2) 

Điều này có nghĩa, nếu bạn muốn tìm một chế độ xem phụ, bạn phải biết cách bạn đã tạo nó.

HTH

6

Thực ra, HTH đã truyền cảm hứng cho tôi thử khả năng thứ ba trong Trình tạo giao diện và nó hoạt động hiệu quả. Cụ thể, việc di chuyển một dấu phân cách không thực hiện bất kỳ thay đổi ngoài ý muốn nào ở nơi khác, điều này có thể dễ dàng xảy ra nếu bạn lồng các chế độ xem chia tách.

  • Thêm một NSSplitView cho bạn cửa sổ,
  • Thêm một (một giao diện tùy chỉnh, trong IB) NSView như một đứa trẻ của Split View. Bạn kết thúc với một chế độ xem chia nhỏ có ba, không phải hai, các bản xem trước.

What it looks like in the IB Objects List

Các công trình tương tự nếu bạn muốn thêm NSSplitView khác như một đứa trẻ, mặc dù bạn sẽ phải cẩn thận như thế nào quan điểm lồng nhau chia ảnh hưởng lẫn nhau. Hình ảnh ở trên cho thấy nó trông như thế nào trong trình tạo giao diện, hình ảnh thứ hai hiển thị kết quả trong Trình mô phỏng.

The result

7

Để thực thi một kích thước tối thiểu, hãy kiểm tra các lớp BESplitViewConstraintEnforcer tiện ích chúng tôi tạo ra.

Nhân tiện: nếu bạn muốn tránh làm tổ các chia tách và thay vào đó thêm một ngăn bổ sung trong Trình tạo giao diện, hãy kéo chế độ xem mới vào đối tượng chia tách, như được hiển thị trong ảnh chụp màn hình bên dưới.

Screenshot

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