5

Tôi có một số NSCollectionView mà tôi có dataArrayselectedIndexesNSIndexSet được xác định trong số File's Owner. (Kể từ khi tôi làm việc với MonoMac về dự án đó, tôi đã gặp rắc rối khi làm việc với một đơn giản NSArrayController và vì vậy tôi quyết định tự mình thực hiện nguồn.) Khi khởi tạo bộ điều khiển, tôi thêm một số dữ liệu (NSMutableDictionary s) vào dataArray . Khi ứng dụng hiển thị cửa sổ, tất cả dữ liệu tôi vừa thêm sẽ được hiển thị độc đáo.Ràng buộc dữ liệu trong NSCollectionView

Sự cố là thay đổi đối với nguồn dữ liệu không ảnh hưởng đến giao diện theo bất kỳ cách nào. Không nên giao diện tự động cập nhật khi tôi thêm, thay đổi hoặc loại bỏ một mục từ nguồn dữ liệu kể từ khi tôi ràng buộc các giá trị bằng cách sử dụng các phím tương ứng của nó?

Tôi có thiếu gì đó không? Bất kỳ suy nghĩ về điều đó?

Thanks a lot
-f

+0

Bạn đã bao giờ làm việc này hoàn toàn chưa? Tôi mới đến monomac và cố gắng làm điều tương tự mà bạn đang có. – tempy

+0

tôi cũng vậy, có ví dụ về cách thực hiện việc này không? – tofutim

Trả lời

2

Khi gắn vào một mối quan hệ để nhiều bạn nguồn dữ liệu, bạn phải đảm bảo rằng các nguồn dữ liệu là Key-Value Quan sát phù hợp cho khách sạn này. Không đủ để có tài sản công khai cho một bộ sưu tập có thể thay đổi, chẳng hạn như NSMutableArray.

Khi triển khai nguồn dữ liệu, bạn phải sử dụng các phương thức từ giao thức NSKeyValueObserving để quảng cáo các thay đổi bạn thực hiện (sử dụng willChange:valuesAtIndexes:forKey: cho các mối quan hệ nhiều).

Nếu hiệu suất kém quan trọng hơn việc triển khai đơn giản, bạn cũng có thể sử dụng (không thay đổi) NSArray cho thuộc tính và luôn gán mảng mới khi dữ liệu thay đổi. Bằng cách này, bạn sẽ không nhận được các hình động đẹp mắt cho các đối tượng được thêm hoặc xóa.

+1

Cảm ơn, Nikolai. Điều đó đã chỉ cho tôi đúng hướng cho vấn đề liên quan đến Mono. Thuộc tính [Export] dường như thực hiện thủ thuật. – flohei

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