Проблема с именем NSTableColumn

Я пытаюсь создать столбец с пустой строкой в ​​качестве идентификатора, но Cocoa, похоже, заменяет пустую строку словом «Поле» каждый раз, когда я пытаюсь создать столбец. Как это обойти?

- (void)addColumnWithCheckboxToTable:(NSTableView *)table
{
    // Add column with checkbox before all other columns
    // This column will have no title and should be as wide as the checkbox
    NSTableColumn *column = [[[NSTableColumn alloc] initWithIdentifier:@" "] autorelease];

    // The checkbox is to be initialised without a title
    NSButtonCell *checkbox = [[[NSButtonCell alloc] initTextCell:@" "] autorelease];
    [checkbox setEditable:YES];
    [checkbox setButtonType:NSSwitchButton];
    [checkbox setImagePosition:NSImageOnly];
    [checkbox setControlSize:NSSmallControlSize];

    // Add column with checkbox to table
    [column setDataCell:checkbox];

    // Add column to table
    [table addTableColumn:column];
}

person ruipacheco    schedule 25.01.2010    source источник


Ответы (1)


Идентификатор столбца — это не то же самое, что его заголовок. Вы хотите установить его строковое значение -headerCell:

[[columnColumn headerCell] setStringValue:@""];
person Joshua Nozzi    schedule 25.01.2010
comment
Я думаю, что это довольно неинтуитивно в коде. NSControl и подклассы передают сообщения своим ячейкам. Я думаю, что NSTableColumn должен иметь метод -title/-setTitle:, который передает строку строковому значению ячейки заголовка. Кто-то должен подать запрос на улучшение... но мне лень. :-) - person Joshua Nozzi; 25.01.2010