2012-09-23 19 views
6

Trong khi cố gắng để tạo ra một cái nhìn bảng dựa nó giữ gọi hàm objectValueForTableColumn thay vì viewForTableColumn.viewForTableColumn không chạy (nhưng objectValueForTableColumn là)

Tôi đã đặt chế độ xem bảng thành "chế độ xem dựa" trong cài đặt của nó. Nhưng tôi vẫn không thể làm cho nó gọi chức năng chính xác. Tôi đã xem xét việc thực hiện các ví dụ táo (tableviewplayground) và tại một số điểm thậm chí sao chép dán IB và chức năng, vẫn không có tiến bộ.

Mã liên quan:

// Should run 
- (NSView *)tableView:(NSTableView *)tableView viewForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row 
{  
    return nil; 
} 

// Gets run 
-(id)tableView:(NSTableView *)tableView objectValueForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row 
{ 
    return nil; 
} 

Hai hình ảnh, không chắc chắn cách hữu ích họ nhưng vẫn. http://imgur.com/a/ix34Q

Trả lời

16

Một số điều cần kiểm tra:

  • Liệu bạn NSTableViewdelegate bộ của mình cho lớp mà thực hiện các giao thức NSTableViewDelegate? (Tôi hỏi vì tableView:viewForTableColumn:row: là một phương pháp đại biểu trong khi tableView:objectValueForTableColumn:row: là một phương pháp nguồn dữ liệu.)

  • Có bất kỳ ràng buộc được đặt trong IB? (Bạn có đề cập rằng bạn sao chép ngòi từ một dự án hiện có.) Kiểm tra chủ yếu để ràng buộc đến nội dung NSTableView ràng buộc và quan điểm cung cấp của subviews (thường là trường văn bản.)

  • Bạn có thực hiện phương pháp numberOfRowsInTableView: từ giao thức NSTableViewDataSource và có trả lại số nguyên không là không?

Cuối cùng, bạn có thể có một cái nhìn tại các chương bảng Xem Programming Guide trên "Bảng Lần Populating View-Based lập trình" trong tài liệu.

+2

Thực tế nó được coi là liên kết với tư cách là đại biểu. Cảm ơn rất nhiều! –

+0

Chắc chắn, niềm vui của tôi. – FluffulousChimp

+0

Điểm đầu tiên là vấn đề của tôi. Đó là một chút bối rối các phương pháp này thuộc về các phương pháp khác nhau (giao thức | datasource) Cảm ơn! –

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