Interface builder librairie partagée

yachiro

Membre confirmé
22 Juin 2011
29
0
37
Bonjour à toutes et à tous,

Je viens recueillir une nouvelle fois vos précieux conseils car les précédents m'ont été d'une grande aide.

Je voulais savoir si cela est possible et si oui comment procéder, pour à partir d'un clic sur un NSButton, créer dans une interface graphique sous IB, exécuter une fonction C provenant d'une librairie .dylib svp ?

N'hésitez pas à me demander plus de renseignements si je n'ai pas été assez clair

Merci à tous
 
Tu peux appeler une fonction d'une librairie de n'importe quel endroit de ton code, clic de bouton ou pas clic de bouton.
L'appel se fait dans le code de l'IBAction associée à ton bouton.
 
Merci pour ta réponse ca marche désormais.

Maintenant un autre problème se pose devant moi, a la base j'ai un main que j'exécute sur shell en lui rajoutant une commande -c fichier.cfg.

Ce main doit désormais s'exécuter sous xcode à l'appui d'un bouton (d'ou ma question précédente).

J'ai donc 2 questions : la première comment faire pour stipuler au builder xcode de rajouter ce fichier à l'exécution et ainsi ne plus recevoir le message d'erreur gdb "error: config file 'fichier.cfg' does not exist".
La deuxième comment faire pour modifier la valeur de 2 éléments de ce fichier à partir d'une saisie dans un NSTextField de mon interface builder (je souhaite taper un login par exemple sur mon interface graphique et que dans mon fichier cfg l'option "login : " s'actualise par la saisie effectuée)

Merci du temps que vous passez sur la question sachez que votre aide m'est très utile !

Bonne journée
 
la première comment faire pour stipuler au builder xcode de rajouter ce fichier à l'exécution et ainsi ne plus recevoir le message d'erreur gdb "error: config file 'fichier.cfg' does not exist".
Tu as la possibilité d'ajouter des fichiers dans le répertoire 'Resources' du bundle de ton application.
Dans Xcode3,il suffit de les mettre dans le groupe 'Resources' de ton projet.
Pour y accéder, tu utilises les fonction de la classe NSBundle :
Bloc de code:
NSString *resourcesPath = [NSString stringWithFormat:@"%@/%@", [[NSBundle mainBundle] resourcePath], @"fichier.cfg"];
Cela construit le chemin vers ton fichier.
La deuxième comment faire pour modifier la valeur de 2 éléments de ce fichier à partir d'une saisie dans un NSTextField de mon interface builder (je souhaite taper un login par exemple sur mon interface graphique et que dans mon fichier cfg l'option "login : " s'actualise par la saisie effectuée)
Tout dépend comment est codé ton fichier. Si c'est un fichier de configuration, il faudrait plutôt passer par un plist, c'est plus propre.
 
Merci pour ta réponse ca marche pour le premier soucis.

Maintenant concernant la plist j'ai pas trop compris comment elle fonctionnait ni en quoi elle allait m'aider dans ce dont j'ai besoin :/.

Pour info mon fichier .cfg contient uniquement des paramètres du genre "login = chien" "password = chat" ...etc.

Je voudrais juste à partir d'un texte saisi dans un NSTextField remplacé les chien/chat par le texte saisi correspondant !

Merci encore pour tes réponses jusque là j'dois dire que tu m'es d'une grande aide !
 
Je veux bien et crois moi que ca m'arrangerait néanmoins cette dernière ne sera utilisable que sur MAC alors que le .cfg peut être commun à toutes les plateformes et dans le cas de mon travail c'est essentiel..

Je bloque vraiment à ce niveau la et je ne vois pas comment procéder pour pouvoir soit modifier les variables directement à partir de mon interface soit faire un test d'égalité de ces dernières (c'est à dire tester si la valeur rentrée à la main est la même que celle présente dans le fichier .cfg)

Je dirais meme qu'actuellement la deuxième option est à privilégier.

On m'a parlé de parser le fichier .cfg mais je ne sais pas vraiment en quoi cela consiste.

Bref j'ai vraiment besoin d'aide merci encore.!
 
Je veux bien et crois moi que ca m'arrangerait néanmoins cette dernière ne sera utilisable que sur MAC alors que le .cfg peut être commun à toutes les plateformes et dans le cas de mon travail c'est essentiel..
Alors écris ton application en Java pas en Cocoa :D Un plist en XML sera lisible sur n'importe quelle plate-forme qui dispose d'un parseur XML, donc toutes.
On m'a parlé de parser le fichier .cfg mais je ne sais pas vraiment en quoi cela consiste.
Il s'agit juste de le lire et d'interpréter chaque ligne pour extraire les informations qu'elle contient. Donc il faut que ton fichier suive une grammaire que tu as définie ou qu'il utilise une grammaire normalisée comme le XML.
 
Bon j'ai gérer l'histoire du fichier de config sans plist en utilisant des fprintf c'est pas très beau certes mais bon le résultat est là et c'est ce qui compte pour le moment.

Maintenant j'ai un problème plus d'ordre IB, je souhaiterais en effet à partir d'une première fenêtre dans laquelle y figure un bouton passer dans une deuxième fenêtre à l'appui de ce dernier.

Pour l'instant quand j'exécute mon programme les 2 fenêtres s'ouvrent (je voudrais que seule la première s'ouvre dans un premier temps) et lorsque j'appuie sur le fameux bouton il ne se passe rien (logique je n'ai pas écrit la méthode correspondant à l'action d'appui mais je suis ici pour recueillir vos idées sur comment faire justement !).

Merci à tous bonne fin de journée.