Hello,
J'ai un problème qui me fait secher depuis maintenant bien 5 heures. J'ai failli jeter mon powerbook par la fenetre un nombre incalculable de fois.
Voilà je veux utiliser une NSTableView pour stocker des objets.
J'ai créé une classe Stockeur qui utilise un NSMutableArray :
Il n'y a aucun problème de compilation. Tous les outlets et les actions sont bien reliées dans le fichier nib. Lorsque je clique sur ajouter, le log m'affiche "n+1 facteurs" ( dans mon NSMutableArray ) et tout marche normalement sauf que le NSTableView reste vierge. J'ai mis comme on peut le voir un NSLog dans les boucles de raffraichissement du NSTableView et celles ci ne sont jamais parcourues.
Comble du comble ce code source est un copier-coller d'un autre de mes programmes (mais créé sur Jaguar lui ) qui lui marche parfaitement. Est-ce un bug du à Tiger ou un truc que je n'arrive pas à voir.
Merci d'avance pour toute aide.
Si vous voulez sauver un Mac de l'horrible chute du 3eme étage qui l'attend inexorablement si je n'y arrive pas, aidez moi .
@+
J'ai un problème qui me fait secher depuis maintenant bien 5 heures. J'ai failli jeter mon powerbook par la fenetre un nombre incalculable de fois.
Voilà je veux utiliser une NSTableView pour stocker des objets.
J'ai créé une classe Stockeur qui utilise un NSMutableArray :
Bloc de code:
#import "Convertisseur.h"
#import "Conversior.h"
#import "Stockeur.h"
@implementation Stockeur
-(id)init
{
if (self = [super init]) {
stock = [[NSMutableArray alloc] init];
}
return self;
}
-(IBAction)Memo:(id)sender
{
Conversior *novel;
novel = [[Conversior alloc] init];
[novel setNom:@"Nouveau facteur"];
[novel setFacteur:[taux floatValue]];
NSLog(@"%f",[taux floatValue]);
[stock addObject:novel];
[self updateUI];
int y = [stock count];
NSLog(@"%d facteurs", y);
}
-(void)updateUI
{
[registre reloadData];
}
-(int)numberOfRowsInTableView:(NSTableView *)aTableView
{
return [stock count];
}
- (id)tableView:(NSTableView *)aTableView
objectValueForTableColumn:(NSTableColumn *)aTableColumn
row:(int)rowIndex
{
NSString *identifier = [aTableColumn identifier];
Conversior *encour = [stock objectAtIndex:rowIndex];
NSLog(@"%@",[encour nom]);
return [encour valueForKey:identifier];
}
- (void)tableView:(NSTableView *)aTableView
setObjectValue:(id)anObject
forTableColumn:(NSTableColumn *)aTableColumn
row:(int)rowIndex
{
NSString *identifier = [aTableColumn identifier];
Conversior *encour = [stock objectAtIndex:rowIndex];
NSLog(@"%@",[encour nom]);
[encour takeValue:anObject forKey:identifier];
}
-(IBAction)util:(id)sender;
{
Conversior *currentChoice;
currentChoice = [stock objectAtIndex:[registre selectedRow]];
[taux setFloatValue:[currentChoice facteur]];
}
-(IBAction)supprim:(id)sender;
{
Conversior *currentChoice;
NSNumber *Index;
int choix;
NSEnumerator *e = [registre selectedRowEnumerator];
NSMutableArray *fordelet = [NSMutableArray array];
while (Index = [e nextObject]) {
choix = [Index intValue];
currentChoice = [stock objectAtIndex:choix];
[fordelet addObject:currentChoice];
}
[stock removeObjectsInArray:fordelet];
[self updateUI];
}
-(void)tableViewSelectionDidChange:(NSNotification *)n
{
int row = [registre selectedRow];
[delet setEnabled: ([stock count] == 0)];
[delet setEnabled: (row != -1)];
[select setEnabled: (row != -1)];
}
@end
Il n'y a aucun problème de compilation. Tous les outlets et les actions sont bien reliées dans le fichier nib. Lorsque je clique sur ajouter, le log m'affiche "n+1 facteurs" ( dans mon NSMutableArray ) et tout marche normalement sauf que le NSTableView reste vierge. J'ai mis comme on peut le voir un NSLog dans les boucles de raffraichissement du NSTableView et celles ci ne sont jamais parcourues.
Comble du comble ce code source est un copier-coller d'un autre de mes programmes (mais créé sur Jaguar lui ) qui lui marche parfaitement. Est-ce un bug du à Tiger ou un truc que je n'arrive pas à voir.
Merci d'avance pour toute aide.
Si vous voulez sauver un Mac de l'horrible chute du 3eme étage qui l'attend inexorablement si je n'y arrive pas, aidez moi .
@+