사용자가 NSTextField에서 문자를 입력 한 후 데이터를로드하는 응용 프로그램에 NSTableView가 있습니다. 여기 NSTableView 대리자가 작동하지 않음/셀을 채우지 않음
내 NSTableView는 위임 방법이 있습니다 내 위임 및 데이터 소스가 모두이 클래스로 설정되어 있는지 제가 확인했다-(NSInteger)numberOfRowsInTableView:(NSTableView *)tableView {
NSLog(@"%lu rows!", (unsigned long)contactsArr.count);
return contactsArr.count;
}
-(NSInteger)numberOfColumns:(NSTableView *)tableView {
return 1;
}
-(NSView *)tableView:(NSTableView *)tableView viewForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row
{
NSLog(@"filling tableview yo");
NSTableCellView *result = [tableView makeViewWithIdentifier:tableColumn.identifier owner:self];
NSButton *nameField = [result viewWithTag:10];
NSButton *numberField = [result viewWithTag:20];
ABPerson *indexedPerson = contactsArr[row];
[nameField setStringValue:[NSString stringWithFormat:@"%@ %@",[indexedPerson valueForKey:kABFirstNameProperty]
,[indexedPerson valueForKey:kABLastNameProperty]]];
[numberField setStringValue:[NSString stringWithFormat:@"%@",[indexedPerson valueForKey:kABPhoneProperty]]];
if (result == nil) {
result = [[NSTableCellView alloc] initWithFrame:CGRectMake(0, 0, 267, 52)];
result.identifier = @"cell";
}
return result;
}
. 나는 또한 나의 콘센트가 설치되었는지 확인했다. 사용자가 키보드에서 무언가를 입력하면 NSMutableArray가 검색 결과로 재설정되고 사실 배열에 ABPerson 객체가 있다는 사실을 기록합니다. 문제는 화면에 셀이 나타나지 않는다는 것입니다. viewForTableColumn 메소드는 가끔씩 만 실행됩니다. reloadData가 전혀 작동하지 않습니다.
대단히 고맙습니다. 문제의 1/2을 해결해 주셔서 감사합니다. 이제 셀은 완전히 비어 있습니다. 정확한 양의 셀을로드하고 스크롤 할 수 있습니다. 그러나 그것들은 완전히 하얗다. 셀의 텍스트 색은 흰색이 아닌 검은 색이며 viewForTableColumn에서 검정색으로 하드 코딩됩니다. –