Bonjou,
j'ai commencé hier à me familiariser avec XCode pour développer une première application Cocoa/Obj-C. Mon idée est de faire une application bidon genre qui permet de créer une tâche à effectuer, avec ou sans rappel.
Pour le moment, j'aimerai simplement afficher dans un NSTableView les différentes tâches qui je rajoute au fur et à mesure. J'ai donc un bouton Add, qui m'ouvre une deuxieme fenetre dans laquelle je saisi un texte puis je la valide en appuyant sur un bouton Valider. Pour le moment le texte tappé s'affiche sur la sortie standard(NSLog) mais le reloadData ne fait pas afficher le texte le NSTableView. Pourtant je pense avoir correctement implémenter le controleur de Datasource.
SI vous pouviez m'éclairer ce serait sympa.
Voici mes deux classes :
TODO.h
/* TODO */
TODO.m
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 #import <Cocoa/Cocoa.h> @interface TODO : NSObject { IBOutlet NSTableView* tableTodo ; IBOutlet NSTableView* tableDone ; NSMutableArray* todoList ; IBOutlet NSTabView* tabView ; IBOutlet NSButton* buttonAdd ; IBOutlet NSTextField* textTodo ; } - (id)initTODO:(id)sender; - (IBAction)addTodo:(id)sender; - (IBAction)deleteTodo:(unsigned int)ident; - (IBAction)doneTodo:(unsigned int)ident; @end
listController.h
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40 #import "TODO.h" @implementation TODO - (id)initTODO:(id)sender { if(![super init]) return nil ; todoList = [NSMutableArray arrayWithCapacity:10] ; //[tableTodo setDataSource: todoList]; return self ; } - (IBAction)addTodo:(id)sender { [todoList addObject:[textTodo stringValue]] ; [todoList reloadData]; } - (IBAction)deleteTodo:(unsigned int)ident { [todoList removeObjectAtIndex:ident]; } - (IBAction)doneTodo:(unsigned int)ident { } @end
listController.m
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 /* listController */ #import <Cocoa/Cocoa.h> @interface listController : NSObject { @private NSArray *aBuffer; } @end
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 #import "listController.h" @implementation listController - (int)numberOfRowsInTableView:(NSTableView *)aTable { return ([aBuffer count]); } - (id)tableView:(NSTableView *)aTable objectValueForColumn:(NSTableColumn *)aCol row:(int)aRow { return ([aBuffer objectAtIndex:aRow]); } @end
Partager