2016-10-11 4 views
0

내 OSX 응용 프로그램에서 NSTableView을 사용하고 변경되지 :NSTableView는 세포 텍스트

- (NSInteger)numberOfRowsInTableView:(NSTableView *)tableView { 
    if (tableView == self.categoryTable) { 
     return [[[AppAPI shared] categoryArr] count]; 
    } 
    return 0; 
} 

- (nullable id)tableView:(NSTableView *)tableView objectValueForTableColumn:(nullable NSTableColumn *)tableColumn row:(NSInteger)row { 
    if (tableView == self.categoryTable) { 
     NSTableCellView *cellView = [tableView makeViewWithIdentifier:tableColumn.identifier owner:self]; 

     CategoryItem * cat = [[AppAPI shared] categoryArr][row]; 

     cellView.textField.stringValue = cat.name; 

     return cellView; 
    } 

    return nil; 
} 

나는 테이블에 데이터를 삽입 할이 코드를 사용하지만, 내가 할 모든이 텍스트 행입니다 : enter image description here

cellView은 0이 아닙니다.

왜 그런가? 당신은 잘못된 위임/데이터 소스 방법

objectValueForTableColumn:row를 사용하는

+0

표보기 셀의 출처는 어디입니까? IB? – Antzi

답변

1

은 행

- (id)tableView:(NSTableView *)tableView objectValueForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row { 
    return [[AppAPI shared] categoryArr][row]; 
} 

viewForTableColumn:row: 뷰를 반환하기위한 객체를 반환하기로되어있다.

- (NSView *)tableView:(NSTableView *)tableView viewForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row { 
    return [tableView makeViewWithIdentifier:tableColumn.identifier owner:self]; 
} 

추 신 : 디자인에 몇 개의 테이블 뷰가 있는지 확인해야합니다.