2010-01-25 3 views
4

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

- (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]; 
} 

ответ

10

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

[[columnColumn headerCell] setStringValue:@""]; 
+0

Большое спасибо, забыли об этом. – ruipacheco

+2

Я думаю, что это довольно неинтуитивно для кода. NSControl и подклассы передают сообщения в свои ячейки. Я думаю, что NSTableColumn должен иметь метод -title/-setTitle:, который передает строку в строковое значение ячейки заголовка. Кто-то должен подать запрос об улучшении ... но я слишком ленив. :-) –

+0

@ Joshua Nozzi действительно – valexa