Cocoa: Récupérer des Actions

tweek

Membre expert
Club iGen
3 Septembre 2005
2 310
538
36
Los Angeles, CA.
www.cocoagrove.com
Bonjour,

Je me suis mis à cocoa depuis quelques jours et je voudrais savoir si il y a un moyen de récupérer des actions dans le fichier nib dans interface builder, afin de pouvoir les utiliser dans une autre application.

Et/ou également savoir comment on les créer? Dans Xcode ?
edit: Peut-on en faire en Javascript ?

capture1ya3.png





Merci d'avance!
 
Salut,

Je ne peux pas répondre à ta question, car elle manque de précision.
Qu'entends-tu par "récupérer les actions"? Que voudrais-tu faire exactement?


Apple n'a pas rendu public le format des fichiers .nib. Bref, on ne sait pas trop ce qu'il y a dedans, et surtout comment c'est stocké. On est donc obligé de passer par Cocoa pour les lire (en Objective-C ou AppleScript, ou par un autre langage qui dispose d'une passerelle, comme Java ou Ruby).

Donc, même si je ne comprends pas trop ta question pour JavaScript, a priori, c'est non!
 
Tu vois par exemple dans la fenetre des actions que j'ai posté en image, il y a une actoin qui s'appelle perform close:

Bon si par exemple cette action m'intéresse et que je veux l'utiliser pour une autre application, ce que je désire savoir c'est où elle sont planquées et où je peux les récupérer dans l'application.
 
tweek a dit:
Tu vois par exemple dans la fenetre des actions que j'ai posté en image, il y a une actoin qui s'appelle perform close:

Bon si par exemple cette action m'intéresse et que je veux l'utiliser pour une autre application, ce que je désire savoir c'est où elle sont planquées et où je peux les récupérer dans l'application.
personnellement je n'ai toujours pas compris ce que tu veux faire, peux-tu donner un exemple concret, une vrai utilisation.


:)
 
Ok:

Alors dans ma fenetre d'actions (images postée plus haut), il y a par exemple une action qui s'appelle "print:" Cette action va donc à la pression d'un bouton par exemple déclencher une impression papier. jusque la ok ? ;)

Bon: Imaginons que cette action (print: ) soie dans une application (on va l'appeler Print.app)
Moi je désire créer ma propre application (par exemple nommée MyApp.app). Dans mon application je désire créer un bouton qui aura pour fonction d'imprimer. J'ai donc besion de connecter mon bouton à une action qui va imprimer. Or c'est l'action print: qui déclenche cette opération. Flûte de crotte, par exemple, elle n'est pas présente dans ma fenetre inspecteur catégorie action (image plus haut).

Comment puis-je faire pour récupérer l'action de l'application voisine pour la mettre dans la mienne? comment et ou puis-je en créer ? Ces actions acceptent-elles le langage Javascript ?

J'espere que j'ai été clair cette fois :D ;)
 
tweek a dit:
J'espere que j'ai été clair cette fois :D ;)

Non, pas trop, mais ça tient au fait que tu ne comprends pas comment tout ça marche.

Avec Cocoa (et souvent en programmation orientée objet), on sépare les objets en trois catégories:

- Modèles
Ce qui fait les calculs et stocke les données.

- Vues
Ce que voit l'utilisateur (boutons, menus, ...)

- Contrôleurs
Ce qui fait le lien entre les 2.


On appelle ça le modèle MVC.

J'allais écrire tout un laïus sur le sujet, mais il y a de la doc qui existe, par exemple sur ProjectOmega.

Si ta question est "peut-on utiliser Interface Builder pour faire l'interface d'une application JavaScript", la réponse est: non.
 
tweek a dit:
Tu vois par exemple dans la fenetre des actions que j'ai posté en image, il y a une actoin qui s'appelle perform close:

Bon si par exemple cette action m'intéresse et que je veux l'utiliser pour une autre application, ce que je désire savoir c'est où elle sont planquées et où je peux les récupérer dans l'application.
ce que tu vois dans ta fenetre ce sont des liens

NIB
[ fenetre un bouton ]
|

[Controller] - [action]


donc tu dis quand je clique sur le bouton j'appele cette fonction c'est tout
si tu veux la fonction implementée ; elle se trouve ds un fichier .m ou .mm et est definie ds dans un .h


ds le dossier courant de tes sources

grep -R ma_methode .

au debut je croyais que tu voulais partager des Events entre différentes applications ...

je te conseille d'acheter un bouquin sur cocoa et d'explorer les exemples ds
ton dossier developer de plus des petites notions fondamentales MVC
te seraient d'un grand secour il existe aussi des bouquins traitant de cela en dehors du language
et du toolkit , va faire un tour chez O'reilly et achete 2 3 bouquins cela te fera avancer beaucoup plus vite
:zen:
 
tatouille a dit:
ce que tu vois dans ta fenetre ce sont des liens

NIB
[ fenetre un bouton ]
|

[Controller] - [action]


donc tu dis quand je clique sur le bouton j'appele cette fonction c'est tout
si tu veux la fonction implementée ; elle se trouve ds un fichier .m ou .mm et est definie ds dans un .h


ds le dossier courant de tes sources

grep -R ma_methode .

au debut je croyais que tu voulais partager des Events entre différentes applications ...

je te conseille d'acheter un bouquin sur cocoa et d'explorer les exemples ds
ton dossier developer de plus des petites notions fondamentales MVC
te seraient d'un grand secour il existe aussi des bouquins traitant de cela en dehors du language
et du toolkit , va faire un tour chez O'reilly et achete 2 3 bouquins cela te fera avancer beaucoup plus vite
:zen:


D'accord !! j'ai pigé ! Ils sont affichés dans Xcode...

Mais il n'y a pas moyen de faire ces fonctions en javascipt plus tout qu'en .h ou .m ?



Pour le bouquin j'en ai trouvé, mais cest pas tres bien expliqué et c'est pas très facie (du moins pour moi :D )
 
tweek a dit:
D'accord !! j'ai pigé ! Ils sont affichés dans Xcode...

Mais il n'y a pas moyen de faire ces fonctions en javascipt plus tout qu'en .h ou .m ?



Pour le bouquin j'en ai trouvé, mais cest pas tres bien expliqué et c'est pas très facie (du moins pour moi :D )

tu peux jouer avec les MVC en javascript cela s'appel XUL
mais c'est pas fait pour ca tu peux t'amuser a écrire un toolkit-cocoa-javascript si ca te plait

mais tout cela est bien different achete des bouquins tu verras ca ira mieux apres
 
tweek a dit:
Mais il n'y a pas moyen de faire ces fonctions en javascipt plus tout qu'en .h ou .m ?

Non, pas directement, mais en même temps, JavaScript n'est pas la panacée.

Je te conseille de t'intéresser à AppleScript Studio. Tu utiliseras Interface Builder pour concevoir les interfaces, et tu écriras ton code en AppleScript, qui est plutôt un bon langage.
Il existe de la doc gratuite sur le site d'Apple (en anglais), mais aussi sur quelques sites web, peut-être en français.
 
Céroce a dit:
Non, pas directement, mais en même temps, JavaScript n'est pas la panacée.

Je te conseille de t'intéresser à AppleScript Studio. Tu utiliseras Interface Builder pour concevoir les interfaces, et tu écriras ton code en AppleScript, qui est plutôt un bon langage.
Il existe de la doc gratuite sur le site d'Apple (en anglais), mais aussi sur quelques sites web, peut-être en français.
homepage.mac.com/iscript.fr/
 
truk2oof a dit:
homepage.mac.com/iscript.fr/
Lien mort?
Pour apprendre les bases de l'AS, je te conseille Applescript in a nutshell, éditions O'reilly (en français).
 
Merci pour le lien, j'ai un peu regarder le site qui m'a l'air très interessant :up:
 
Hop ! dans mes signets! ;)

Merci pour le site, y'a plein de trucs intéressants. :up:
c'est vrai qu'en générale il y a tout ce qu'il faut pour les script dont on peut avoir besoin tout les jours (pas pour les truc plus pousser spécifiques à une appli par contre) :up: