Tôi có ứng dụng trò chuyện đơn giản với tin nhắn văn bản xem dựa trên NSTableView như bạn có thể thấy ở hình bên dưới. Mỗi thư chứa cá thể NSTextView có chiều cao để vừa với tất cả văn bản.Cách gọi NSScrollView autoscroll-method theo cách lập trình
Tất cả những gì tôi cần là bắt đầu NSScrollView (trong đó NSTableView-instance được kèm theo) autoscrolling trong khi người dùng chọn văn bản kéo chuột đủ xa. Thật không may, tính năng tự động kiểm tra không xuất hiện. Trong trường hợp kéo một nơi nào đó bên ngoài văn bản, tất cả đều thành công.
Tôi cố gắng để gọi autoscroll:
-method trực tiếp bằng cách đơn giản đẩy NSEvent
-instance từ NSTextView
-subclass "chuột kéo" -event (như trong ví dụ từ this article):
- (void)mouseDragged:(NSEvent *)event
{
[self.scrollView autoscroll:event];
}
Như tôi đã gạt tất cả các sự kiện chuột và thực hiện tất cả các lựa chọn văn bản, phương pháp này thường gọi. Nhưng việc tự động kiểm tra có vẻ không hoạt động.
CẬP NHẬT
tôi đã tìm ra rằng trước khi gọi -autoscroll:
-method phải có -mouseDown:
của cùng một đối tượng. Nhưng nó phá vỡ cơ chế lựa chọn văn bản của tôi. Điểm thậm chí không phải là lần đầu tiên trả lời, không được có gì khác ngoài phương pháp mouseDown:
.
Nếu bạn đang nói rằng với một NSTableView bên trong một NSScrollView và các hàng NSTableView là nhiều dòng, và khi chọn văn bản bên trong một ô và kéo xuống dưới dưới cùng của dạng xem cuộn, nó không cuộn? Nếu vậy, chức năng đó được cung cấp tự động bởi NSScrollView và không có gì khác là cần thiết để di chuyển để xảy ra trong khi lựa chọn. Để kiểm tra, tôi đã tạo một dự án mới, thêm một NSScrollView (NSTableView), thiết lập chiều cao hàng lớn hơn khung nhìn cuộn và điền vào bảng nhìn. Nhấp vào văn bản và sau đó chọn xuống phía dưới cùng của chế độ xem cuộn. Nó được cuộn tự động. – Jay
@Jay Tôi cần bắt đầu tính năng tự động kiểm tra chế độ xem cuộn của NSTableView, chứ không phải chế độ xem văn bản của chế độ xem (chế độ xem văn bản có chiều cao đủ để vừa với văn bản). – Astoria
Tôi không chắc chắn những gì bạn đang yêu cầu. Giả sử bạn dùng NSTableView từ Thư viện đối tượng vào cửa sổ trong Xcode, NSTableView sẽ được bao bọc bởi một NSScrollview.Nếu bạn đang cố gắng để chọn văn bản trong một hàng trong một tableview bằng cách nhấp chuột vào hàng nơi văn bản và kéo xuống (đó là cách nó xuất hiện từ ảnh chụp màn hình, NScrollView kèm theo xử lý tự động và sẽ cuộn lên để Bạn có thể tiếp tục chọn văn bản – Jay