2010-01-25 3 views
4

J'essaye de créer une colonne avec une chaîne vide comme identifiant mais Cocoa semble remplacer la chaîne vide par le mot "Field" chaque fois que j'essaye de créer la colonne. Comment allez-vous autour de cela?Problème de nommage 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]; 
} 

Répondre

10

L'identifiant d'une colonne n'est pas la même chose que son titre. Vous voulez définir la valeur de chaîne de son -headerCell:

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

Merci beaucoup, oublié à ce sujet. – ruipacheco

+2

Je pense que c'est plutôt non intuitif dans le code. NSControl et les sous-classes transmettent des messages à leurs cellules. Je pense qu'un NSTableColumn devrait avoir une méthode -title/-setTitle: qui passe la chaîne sur la valeur de la chaîne de la cellule d'en-tête. Quelqu'un devrait déposer une demande d'amélioration ... mais je suis trop paresseux pour. :-) –

+0

@Joshua Nozzi en effet – valexa