NSTableView с выпадающим меню и изображения внутри меню - PullRequest
1 голос
/ 01 июля 2011

Да, возможно ли иметь:

  1. Таблица с двумя столбцами (должно быть легко)
  2. В одной ячейке должно быть изображение, и его можно выбрать из выпадающего спискавниз меню
    По поиску, я узнал, что он должен иметь тип NSPopupButtonCell, но я хочу, чтобы внутри него было только изображение, без текста,
    Как я могу это сделать?
  3. Другой столбец будет редактируемым, пользователь должен иметь возможность ввести его.

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

1 Ответ

2 голосов
/ 01 июля 2011

я сделал это следующим образом,

В столбце 1 выберите DataCell и присвойте ему тип NSPopupButtonCell, по умолчанию он не придет, вам нужно явно его выбрать.

В коде добавить следующие строки кода ...

NSTableColumn *option = [pTableColumns objectAtIndex:[pTableView columnWithIdentifier:OPTION_COLUMN_NAME]];
NSTableColumn *shortCutItem = [pTableColumns objectAtIndex:[pTableView columnWithIdentifier:SHORTCUT_COLUMN_NAME]];

// we want first cell to have the Image & Menu 
//Data type column drop down
NSPopUpButtonCell *dataTypeDropDownCell = [option dataCell];//[[NSPopUpButtonCell alloc] initTextCell:@"" pullsDown:YES];
[dataTypeDropDownCell setBordered:NO];
[dataTypeDropDownCell setEditable:YES];

NSArray *dataTypeNames = [NSArray arrayWithObjects:@"NULLOrignal", @"String", @"Money", @"Date", @"Int", nil];
[dataTypeDropDownCell addItemsWithTitles:dataTypeNames];

Добавьте следующий код, чтобы установить правильный MenuItem

- (void)tableView:(NSTableView *)aTableView willDisplayCell:(id)aCell forTableColumn:(NSTableColumn *)aTableColumn row:(NSInteger)rowIndex{

    if([[aTableColumn identifier] isEqualToString:OPTION_COLUMN_NAME]){
        NSPopUpButtonCell *dataTypeDropDownCell = [aTableColumn dataCell];


        [dataTypeDropDownCell selectItem:[ dataTypeDropDownCell itemAtIndex:3]];
    }

}

Теперь только в ожидании этого это добавить изображение внутри MenuItem, что не имеет большого значения,

Еще раз спасибо за просмотр этого, дайте мне знать, если есть какой-либо другой подход для этого ....

...