2010-11-03 26 views
15

Tôi có một NSSplitView (KHÔNG UISplitView (Bộ điều khiển) !!) với ba phần phụ. Bây giờ, đối với dải phân cách cuối cùng (chỉ số 1), tôi muốn dải phân cách không hiển thị con trỏ kéo (hai mũi tên chỉ ra từng phần khác nhau). Tôi có điều này để ngăn chặn sự kéo, nhưng con trỏ vẫn hiển thị:Làm cho dải phân cách của một NSSplitView không thể phân tách và không hiển thị con trỏ kéo

- (CGFloat)splitView:(NSSplitView *)splitView constrainSplitPosition:(CGFloat)proposedPosition ofSubviewAt:(NSInteger)dividerIndex { 
    if (dividerIndex == 1) { 
    return [splitView frame].size.width - 161; 
    } 
} 

Lưu ý rằng tôi chỉ muốn ẩn con trỏ cho chia ở index 1. Ai giúp tôi với? Cảm ơn. :)


Không, tôi không muốn sử dụng BWToolkit.

Trả lời

0

Hãy thử sử dụng splitView:constrainMaxCoordinate:ofSubviewAt:splitView:constrainMinCoordinate:ofSubviewAt: thay vì splitView:constrainSplitPosition:ofSubviewAt:.

Hai phương pháp cũ được gọi một lần khi người dùng kéo chuột và họ cung cấp đủ thông tin cho NSSplitView để biết cách thay đổi con trỏ trong khi kéo.

Sau này được gọi nhiều lần khi người dùng kéo bộ chia, vì vậy NSSplitView không có đủ thông tin để biết rằng bạn trả về giá trị không đổi mỗi lần và do đó không thể thay đổi con trỏ.

+8

** Xem câu trả lời tiếp theo của * Mike A * để có cách tiếp cận tốt hơn .. ** – Jay

73

Tôi biết điều này đã được trả lời trong một thời gian, nhưng câu trả lời được cung cấp không phù hợp với nhu cầu của tôi.

Phương thức ủy nhiệm splitView:effectiveRect:forDrawnRect:ofDividerAtIndex: cho phép bạn đặt hình chữ nhật hiệu quả để kéo bộ chia. Nếu bạn trả lại NSZeroRect, không có con trỏ kéo nào sẽ xuất hiện, bất kể thiết lập của bạn là splitView:constrainMaxCoordinate:ofSubviewAt:splitView:constrainMinCoordinate:ofSubviewAt:.

Hy vọng rằng sẽ giúp người khác đến đây.

+0

Tuyệt vời! Chính xác những gì tôi cần :) –

+0

Chắc chắn đã giúp! Cảm ơn – isobar

+1

Điều này hoạt động hoàn hảo để ngăn con trỏ thay đổi kích thước xuất hiện ngay cả khi sử dụng Bố cục Tự động để quản lý chế độ xem chia tách! Cảm ơn! – Andrew

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