2013-06-08 24 views
7

Giả sử tôi có một loạt các đối tượng Bài viết được lưu trữ trong mô hình dữ liệu lõi. Mỗi bài viết duy trì, một thuộc tính tiến trình đọc biểu thị số lượng bài viết đã được đọc bởi người dùng. Sau khi người dùng đọc toàn bộ bài viết, bài viết được đánh dấu là "Đã đọc". Trước đó, nó sẽ được đánh dấu là "Chưa đọc".Tạo các hàng nhóm trong NSTableView bằng cách sử dụng CoreData được hỗ trợ NSArrayController

Bây giờ tôi có một NSTableView ràng buộc với một NSArrayController chứa tất cả các đối tượng Điều được lưu trữ bằng cách sử dụng CoreData. Tôi muốn nó hiển thị tất cả các bài viết chưa đọc trong một nhóm "Chưa đọc" và tất cả các bài viết đã đọc trong nhóm "Đọc".

tôi biết về phương pháp

- (BOOL)tableView:(NSTableView *)tableView isGroupRow:(NSInteger)row 

trong NSTableViewDelegate. Tuy nhiên, điều này cho thấy rằng chúng ta phải có các hàng thực tế nói "Đọc" và "Chưa đọc" trong NSArrayController sẽ được quảng bá cho nhóm. Kể từ khi NSArrayController chứa các đối tượng Article được lấy từ CoreData, làm thế nào để tôi thực hiện việc này?

NB: Đây là câu hỏi đầu tiên của tôi ở đây, và tôi mới để Cocoa, hãy truy cập dễ dàng vào tôi :)

+0

2 tuổi và vẫn không có câu trả lời. Bạn có tìm thấy giải pháp trong thời gian chờ đợi không? –

+0

Tôi cũng đang tìm kiếm tính năng như vậy nhưng không tìm thấy giải pháp nào. Bạn có thể làm như vậy không. Nếu có, bạn có thể cho tôi biết cách đạt được điều đó không. –

+0

Một giải pháp là sử dụng FRC của bên thứ 3 như thế này https://github.com/konstantinpavlikhin/KSPFetchedResultsController – CryingHippo

Trả lời

0

tôi đề nghị sử dụng NSOutlineview và NSTreeController để tạo nhóm thay vì NSTableView và NSArrayController.

0

Bạn phải điền NSArrayController theo cách thủ công với một cá thể lớp tùy chỉnh giữ chính xác nội dung của NSTableView mà bạn muốn thực hiện, bao gồm cả các hàng nhóm. Bộ điều khiển phải được điền đúng thứ tự. Vì vậy, nó sẽ bắt đầu với một đối tượng tiêu đề nhóm, sau đó một số đối tượng dữ liệu, một đối tượng tiêu đề mới, v.v. Lớp tùy chỉnh phải chứa các thuộc tính sau:

Giá trị chuỗi cho tiêu đề nhóm. Không phải là nil khi hàng không có tiêu đề nhóm.

Giá trị logic là GroupHeader. Cần thiết cho một tableView dễ dàng: isGroupRow: implementation.

Giá trị NSManagedObject cho dữ liệu thông thường của bạn. Không phải là nil khi hàng là tiêu đề nhóm.

Với điều này, bạn có tất cả các công cụ để thực hiện tất cả các đại biểu NSTableView để có được chế độ xem bảng được nhóm đúng cách.

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