Вопрос

Я мог бы задавать очень простой вопрос, но я не могу избавиться от этого, требование

  1. Таблица должна отображать изображение и немного текста рядом с этим. Для этого я добавил два столбца в таблице
  2. NstableView должен быть прозрачным. Для этого я сделал класс CustomNStableView, внутренний метод переопределения, чтобы не нарисовать фон, и сказал Cell не Dealsback Ground.
  3. Теперь следующее препятствие - как отобразить изображение, мне пришлось переопределить/обрабатывать следующий метод

.

- (NSCell *)tableView:(NSTableView *)tableView dataCellForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row{

    NSImage *pCellImage = // Get a valid Image ;

    if(tableColumn == nil ) return nil;

    NSString *colName = [tableColumn identifier];
    if([colName isEqualToString:@"firstColumn"]){
        NSCell *pCell = [[NSCell alloc]initImageCell:pCellImage];
        return pCell;
    }else{
        NSCell *pCell = [[NSCell alloc]initTextCell:@"Some text"];
        return pCell;

    }
}

Я добавил CableColumn == Nil Condition, как и в документации, в первый раз для каждой строки, это будет вызвано с помощью TableColumn NIL, когда мне нужно установить один столбец для всей строки, но если я верну его сбой с помощью комментария BAD_ACCESSE В

Теперь мой вопрос заключается в том, как справиться с условиями NIL, также в этой функции после настройки NSCELL для обоих столбцов, он переходит к другой функции делегата

- (id) tableView:(NSTableView *)aTableView objectValueForTableColumn:(NSTableColumn *)aTableColumn row:(NSInteger)rowIndex

Я считаю, что после правильного настройки набора данных мне не нужно использовать эту функцию,

С следующей реализацией его сбоя, но я не могу понять это, что не так,

Я устанавливаю правильный источник данных и делегат,

Это было полезно?

Решение

Вы пробовали позвонить в Setbackgroundcolor и пропустить чистый цвет?

[myTableView setBackgroundColor:[[NSColor clearColor]];

Если вы используете этот метод, не забудьте сказать окружающему NSSccrollview, чтобы не рисовать его фон.

В качестве альтернативы подумайте о предоставлении фона таблицы как Calayer.

Что касается рисования изображения и текста в одном столбце, отношения разработчиков Apple опубликовали пользовательский NSCELL, ImageAndTextCell. Анкет Вы можете использовать эту ячейку со экземплярами nstableview и nsoutlineview. Эта пользовательская ячейка имеет дело с рисованием изображения и текста в одном столбце.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top