Программно созданный NSTableView не отображается - PullRequest
1 голос
/ 08 июня 2011

Я хочу создать табличное представление в коде, а не IB, но оно не будет отображаться. Вот мой код:

- (void)createTableView{
    _tableView = [[NSTableView alloc]initWithFrame:NSMakeRect(0, 0, 700, 300)];
    [_tableView setBackgroundColor:[NSColor cyanColor]];
    [_tableView setDelegate:self];
    [_tableView setDataSource:self];
    [self addSubview:_tableView];
}

- (NSInteger)numberOfRowsInTableView:(NSTableView *)tableView{
    return 10;
}

- (id)tableView:(NSTableView *)tableView objectValueForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row{
    NSButtonCell *cell = [[[NSButtonCell alloc] init] autorelease];
    [cell setAllowsMixedState:YES];
    [(NSButtonCell *)cell setButtonType:NSSwitchButton];
    [cell setTitle:@"Test"];

    return cell;
}

Когда я отлаживаюсь, я вижу, что он не запускается objectValueForTableColumn:. Я не знаю почему.

1 Ответ

3 голосов
/ 08 июня 2011

Вы не добавили ни одного столбца таблицы в представление таблицы.Для этого используйте -[NSTableView addTableColumn:].

Кроме того, я не уверен, что вы ожидаете, возвращая ячейку в качестве объекта строки и столбца.Этот метод должен возвращать объект, который подходит для отображения в ячейке в этой строке и столбце.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...