2012-10-28 32 views
7

Tôi đang sử dụng NSTableCellView thông thường (không được phân loại) trong chế độ xem bảng dựa trên chế độ xem. Nó có hình ảnh ban đầu và khung nhìn trường văn bản. Tôi đã thêm một NSStepper vào khung nhìn.NSStepper trong NSTableCellView không có hiệu lực

Trường văn bản được liên kết với tableCellView.objectValue.quantity. Giá trị của trình điều khiển cũng được ràng buộc với tableCellView.objectValue.quantity.

Vấn đề là khi chạy ứng dụng, khi tôi nhấp vào trình phát, dường như không có sự kiện chuột, cả hai mũi tên đều không được đánh dấu, giá trị không tăng hoặc giảm.

Nếu tôi đặt hành động kép của chế độ xem bảng, nó sẽ được kích hoạt nếu tôi nhấp đúp vào trình phát như minh bạch.

Tôi đang thiếu gì?

Cảm ơn!

Trả lời

9

Bạn nên xem tài liệu nhưng dễ nhất là bạn cần phải phân lớp NSTableView và ghi đè phương thức này để xác thực phản hồi đầu tiên được đề xuất. Vì tài liệu cho biết NSTableViews không cho phép sử dụng một số điều khiển trừ khi hàng được chọn đầu tiên. Thậm chí sau đó nó vẫn có thể loại bỏ một số.

- (BOOL)validateProposedFirstResponder:(NSResponder *)responder forEvent:(NSEvent *)event { 
    return YES; 
} 
+0

Cảm ơn bạn rất nhiều: nó hoạt động! – wdyp

+0

bạn là một HERO !!! –

0

Ngoài câu trả lời đúng từ Robert Payne, với Swift bạn có thể thêm phần mở rộng vào NSTableView chứ không phải phân lớp.

extension NSTableView { 
    override public func validateProposedFirstResponder(responder: NSResponder, forEvent event: NSEvent?) -> Bool { 
     return true 
    } 
} 

Và tôi muốn nhấn mạnh rằng đó là NSTableView chứ không phải NSTableViewCell.

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