Ứng dụng của tôi bao gồm NSScrollView
có chế độ xem tài liệu chứa số lượng được xếp chồng đứng NSTextViews
- mỗi lần thay đổi kích thước theo hướng dọc khi văn bản được thêm vào.Sử dụng Autolayout với mở rộng NSTextViews
Hiện tại, tất cả được quản lý bằng mã. Các NSTextViews
tự động thay đổi kích thước, nhưng tôi quan sát kích thước của chúng với một NSViewFrameDidChangeNotification
, recalc tất cả nguồn gốc của chúng để chúng không chồng lên nhau, và thay đổi kích thước của người giám sát (chế độ xem tài liệu của chế độ xem cuộn) để chúng vừa vặn và có thể cuộn đến.
Điều này có vẻ như thể đó sẽ là ứng cử viên hoàn hảo cho autolayout! Tôi đặt NSLayoutConstraints
giữa chế độ xem văn bản đầu tiên và vùng chứa, chế độ xem văn bản cuối cùng và vùng chứa của văn bản và mỗi chế độ xem văn bản giữa nhau. Sau đó, nếu bất kỳ chế độ xem văn bản nào phát triển, nó sẽ tự động "đẩy xuống" nguồn gốc của chế độ xem văn bản bên dưới để thỏa mãn các giới hạn, cuối cùng tăng kích thước của chế độ xem tài liệu và mọi người đều vui vẻ!
Ngoại trừ, có vẻ như không có cách nào để tự động phát triển NSTextView
khi văn bản được thêm vào trong bố cục dựa trên ràng buộc? Sử dụng chính xác cùng một NSTextView
tự động mở rộng khi văn bản được nhập trước đó, nếu tôi không chỉ định ràng buộc cho chiều cao của nó, nó sẽ tự động hủy 0 và không được hiển thị. Nếu tôi chỉ định một ràng buộc, ngay cả một sự bất bình đẳng như> = 20, nó vẫn bị mắc kẹt ở kích thước đó và không phát triển khi văn bản được thêm vào.
Tôi nghi ngờ việc này phải thực hiện với việc triển khai NSTextView là -intrinsicContentSize
, theo mặc định trả về (NSViewNoInstrinsicMetric, NSViewNoInstrinsicMetric)
.
Vì vậy, câu hỏi của tôi: nếu tôi phân lớp NSTextView
để trả lại một ý nghĩa hơn intrinsicContentSize
dựa trên bố cục văn bản của tôi, thì tính năng tự động của tôi có hoạt động như mong đợi không?
Bất kỳ con trỏ nào khi triển khai intrinsicContentSize
cho một NSTextView theo chiều dọc thay đổi kích thước?
bạn có thể thêm một số đồ họa/ảnh chụp màn hình/wireframe để tạo điều kiện cho sự hiểu biết thiết lập xin vui lòng? Bạn đã cố gắng tính toán chiều cao văn bản và trả lại nó trong 'intrinsicContentSize'? – JJD