Progammation Xcode

gogaulegogaule Membre
18:58 modifié dans API AppKit #1
Bonsoir à  tous .
......... Une bouteille à  la mer ........ ( Jeroboham ) .
Je cherche de l'aide .
J' ai confectionné un début de logiciel ..
Une interface très 'rudimentairtisanal' créé avec mon amie IB .
Photocopie .. jointe .
Comment faire additionner : sept cellules 1+2 = ; 1+2+3= ; 1+2+3+4= et la suite .1+....7= avec un résutat à  chaque .
Merci d'avance .javascript:void(0);

Réponses

  • psychoh13psychoh13 Mothership Developer Membre
    18:58 modifié #2
    Les NSTableView ne sont pas des feuilles de calculs, on leur indique une source de données (datasource) et après elles demandent à  cette source ce qu'il faut inscrire dans telle ou telle case, c'est donc à  toi et à  ta source de données de gérer les additions par derrière, le NSTableView ne fait que les afficher et les organiser.
  • Philippe49Philippe49 Membre
    18:58 modifié #3
    dans 1197306040:


    ......... Une bouteille à  la mer ........ ( Jeroboham ) .



    ça c'est un mot que l'on aime bien pour un nouveau venu !!  :p :p
    ça rassure ...
  • gogaulegogaule Membre
    18:58 modifié #4
    Oui il eu suffit de l'aspirer .....
  • MalaMala Membre, Modérateur
    18:58 modifié #5
    dans 1197391962:

    Oui il eu suffit de l'aspirer .....


    Mouai, à  moins qu'on aime pas les couleuvres...

    http://forums.macgeneration.com/vbulletin/showthread.php?t=193037

    http://forums.macgeneration.com/vbulletin/showthread.php?t=197395
  • AliGatorAliGator Membre, Modérateur
    décembre 2007 modifié #6
    Alors un peu plus de détails sur la solution avec des dataSources :
    - Créer une NSTableView avec les colonnes qu'on veut, et leur donner à  chacune un "identifier". Pour la colonne "Total", décocher l'option "éditable" pour empêcher l'utilisateur d'entrer des données ;
    - Créer une classe contrôleur, comme on fait d'habitude, et lui ajouter un outlet vers la TableView, et 2 actions "addRow" et "removeRow"
    - Définir le contrôleur comme dataSource de la NSTableView
    - Créer les fichiers pour le contrôleur. Lui rajouter une variable d'instance NSMutableArray pour stocker nos données
    - Implémenter les 3 méthodes classiques du NSTableDataSource protocol (nb de rows, valueForRow:..., setObjectValue:forRow:...), qui vont se baser sur le mutableArray pour remplir ou retourner les données (chaque élément du mutableArray est un mutableDictionary dont les clés sont les identifieurs de chaque colonne de la tableView).
    - Implémenter les IBActions addRow et removeRow pour que ça ajoute et supprime des lignes dans notre mutableArray. ne pas oublier le reloaddata sur la TableView ensuite pour rafraà®chir

    Jusque-là , c'est la base de Cocoa : c'est ce que décrivent habituellement les tutos (des bouquins ou du net) sur les NSTableViews, un grand classique. Donc si déjà  avec ça (qui ne calcule pas encore la colonne "total" automatiquement mais te permet d'avoir un tableau avec des valeurs dedans) tu ne t'en sors pas, c'est que tu n'as pas un niveau suffisant pour faire ce que tu souhaites, et que ce projet est sans doute trop ambitieux : commence dans ce cas déjà  sur des projets plus simples, en suivant des tutos du bouquin "Cocoa par la pratique" (d'ailleurs je doute que le classique tuto sur les tableViews ne soit pas dedans...)




    Maintenant, si on en reste là , tu as juste un simple tableau de données auquel tu peux rajouter des lignes ou en supprimer, et mettre n'importe quoi dedans. Il nous reste à  calculer la somme. Pour cela, il suffit d'effectuer un petit test conditionnel sur la méthode [tt]- (id)tableView:(NSTableView *)aTableView objectValueForTableColumn:(NSTableColumn *)aTableColumn row:(int)rowIndex[/tt] qui va retourner une valeur spéciale (la somme) si l'identifier de aTableColumn est égal à  "sum" (identifieur de ta colonne de total). Dans ce cas particulier, il suffit de récupérer les valeurs pour les clés val1, val2, ...val7 de ton tableau de données (côté contrôleur bien sûr, pas côté vue), de faire leur addition, et retourner le résultat.

    Voilà , c'est pas bien compliqué en somme, à  partir du moment où tu as suivi les tutos classiques pour apprendre Cocoa sans sauter les étapes.


    bon après évidemment y'a d'autres façons de faire, comme en utilisant les bindings pour que tout se mette à  jour tout seul, mais ce n'est peut-être pas le plus judicieux de commencer par eux si tu ne sais pas faire via les dataSources... d'autant que pour le coup c'est pas forcément moins compliqué...
  • gogaulegogaule Membre
    18:58 modifié #7
    MERCI !
    Je ne ferai surement que ce " logiciel " là  .
    Si il marche , je me ferai un plaisir de le distribuer  gracieusement au organisateurs de concours qui le désirerons .
  • MulotMulot Membre
    18:58 modifié #8
    Là  voilà  enfin ta réponse Gogaule !
  • gogaulegogaule Membre
    18:58 modifié #9
    eu  .....h    mulot
    ben oûet ..
    javascript:void(0);
    Le monde et petit .. cela facilite le travail des documentalistes  (sic : gogaule) @2007
Connectez-vous ou Inscrivez-vous pour répondre.