Petites questions de grand débutant

Bonjour à  tous.

Voilà , depuis deux mois j'apprends l'objective C/Cocoa. Pour m'améliorer, j'ai décidé de me lancer dans un petit projet. J'ai juste quelques petites questions :

1. Comment changer le nom du menu en haut. Je n'arrive pas à  le changer, ça reste le nom de mon projet. (Oui, je sais, je suis un noob).

2. Une fois mon application fermée, j'aimerais quelle disparaisse du dock, or elle y reste. Il faut alors faire clique droit, quitter l'application. Comment faire pour changer cela ?

Merci pour aide !
«1

Réponses

  • NoNo Membre
    05:51 modifié #2
    dans 1220632875:

    1. Comment changer le nom du menu en haut. Je n'arrive pas à  le changer, ça reste le nom de mon projet. (Oui, je sais, je suis un noob).

    Je te renvoie vers ce topic.
    En gros, ce nom est celui de l'exécutable, et donc par défaut celui du projet XCode.
    Tu peux changer le nom de l'exécutable en modifiant le plist. Voir les message du topic donné.

    dans 1220632875:

    2. Une fois mon application fermée, j'aimerais quelle disparaisse du dock, or elle y reste. Il faut alors faire clique droit, quitter l'application. Comment faire pour changer cela ?

    Par application fermée, si tu entends "fermeture la dernière fenêtre", alors ça ne ferme pas l'appli.
    Celle ci se ferme passant par la menu application, item Quitter (ou par clavier POMME Q).
    Toutefois, il existe un delegate de NSApplication qui permet de faire quitter l'appli automatiquement lorsque la dernière fenêtre est fermée : c'est applicationShouldTerminateAfterLastWindowClosed:.
  • CéroceCéroce Membre, Modérateur
    05:51 modifié #3
    1. Il faut changer le nom de l'appli dans resources/info.plist... quoique ça marche pas toujours.

    2. Qu'appelles-tu <fermer l'application> ? Si ça veut dire fermer toutes les fenêtres alors tu as le comportement normal.

    Si tu veux quitter quand il n'y a plus de fenêtre, ajoute ceci à  ton NSWindowController:

    -(BOOL) applicationShouldTerminateAfterLastWindowClosed:(NSApplication *)theApplication<br />{<br />  return YES;<br />}
    



    Edit: Grillé par No.
  • septembre 2008 modifié #4
    Pardon mais j'avais déjà  fait ce que vous m'avez dit. Cela ne marche pas. Si je change le nom de l'executable, le changement n'est pas répercuté sur le menu. Vous avez d'autre solution ?
  • AliGatorAliGator Membre, Modérateur
    05:51 modifié #5
    Déplace peut-être ton exécutable compilé (dans le Finder) sur le Bureau puis remet-le à  sa place.
    L'intérêt ? Ca force les LaunchServices à  réanalyser le plist à  l'intérieur de l'application à  prendre en compte les modifications de clés que tu as faites dedans.
    Parfois c'est juste ça... il a en mémoire les anciennes valeurs donc t'as l'impression que tes changements ne font rien ;)
  • 05:51 modifié #6
    Merci, j'ai fais ça d'un autre façon. j'ai recréer un autre projet avec le nom que je voulais afficher, j'ai copier-coller les fichiers dont j'avais besoin, et voilà  le travail, merci de votre aider !  :)
  • 05:51 modifié #7
    Rebonjour ! Merci encore de votre aide.

    J'ai une nouvelle question, où modifier le texte qui est affiché dans "a propos de" dans le menu de l'application ?
  • NoNo Membre
    05:51 modifié #8
    dans 1220692302:

    J'ai une nouvelle question, où modifier le texte qui est affiché dans "a propos de" dans le menu de l'application ?

    Cela se fait dans IB.
    Ouvre depuis XCode le mainMenu.nib qui est dans ton projet.
    Dans IB, cherche puis ouvre le MainMenu.
    A partir de là , tu peux tout modifier : les intitulés, mais aussi toutes les propréités des items de menu via l'inspecteur.
  • AliGatorAliGator Membre, Modérateur
    septembre 2008 modifié #9
    Heu je pense qu'il voulais parler de ce qui est affiché dans l'aboutbox elle-même, pas de l'intitulé "A propos de ..." dans le menu.

    Cet article de menu appelle par défaut orderFrontStandardAboutPanel sur ton application, qui affiche la fenêtre d'à -propos par défaut
    En fait cette fenêtre a un design par défaut, mais tu peux changer les textes affichés, en particulier le nom de la "compagnie" (copyright) et la version, ainsi que l'icône affichée dans cette AboutBox... Mais aussi un texte de "Credits". Il suffit pour cela de renseigner correctement les clés correspondantes dans le Info.plist (voire InfoPlist.strings pour sa version localisée/traduite) pour indiquer les valeurs voulues. Tout est expliqué dans la doc de [tt]orderFrontStandardAboutPanelWithOptions:[/tt] pour savoir quelles clés de l'Info.plist sont utilisées.

    Sinon, si tu veux complètement personnaliser la fenêtre affichée par cet article, tu peux aussi créer ta propre NSWindow avec ce que tu veux dedans (dans IB) et relier l'article de menu "About MonApplication" à  l'action "orderFront:" de cette NSWindow (en faisant la connexion dans IB avec ctrl-glisser de l'article de menu vers la NSWindow)...
  • septembre 2008 modifié #10
    J'arrive toujours pas à  changer l'about box "a propos de". De plus, comment ajouter une image à  mon application. Avec image view ça beug !

  • NseaProtectorNseaProtector Membre
    05:51 modifié #11
    Regarde dans les exemples d'Xcode il y'en a plusieurs ou l'about box est remplie, par exemple "TextEdit" dans "AppKit" , regarde le fichier "infoPlist.strings. Il te suffit de copier / coller ou de t'inspirer ... Et si tu veux savoir si telle chaine de caractère correspond bien a celle que tu veux, met un A dans le texte de la première un B dans la seconde etc... tu compile et tu verras qui est qui ...
  • Paisible.frPaisible.fr Membre
    05:51 modifié #12
    dans 1220692302:

    J'ai une nouvelle question, où modifier le texte qui est affiché dans "a propos de" dans le menu de l'application ?


    Il s'apelle credits.rtf il me semble.

    Consulte aussi :


  • Merci pour votre aide. Mon application est finie, il reste un beug que je n'arrive pas à  enlever. Pour l'about box, j'ai préféré créer une nouvelle fenêtre que j'ai relié à  menu. La première fois que j'ouvre ma fenêtre a propos de, tout se passe bien, mais la deuxième fois, l'application beug, que s'est t-il passé ?
  • NseaProtectorNseaProtector Membre
    05:51 modifié #14
    mais la deuxième fois, l'application beug, que s'est t-il passé ?

    C'est à  dire ?
    Tu essayes peut-être d'ouvrir un objet (ta fenêtre) détruit ???
  • J'ai une erreur qui s'affiche "obj-mgsend", quelque chose dans le  genre
  • NoNo Membre
    05:51 modifié #16
    Vérifie dans IB que ta fenêtre A Propos n'aie pas l'option "release when closed" cochée.
    Car si c'est le cas, à  la première fermeture, la fenêtre sera détruite, et son réaffichage provoquera un plantage.
  • Merci à  tous pour vos aides !

    J'ai maintenant fini mon application, je vous laisse l'essayer à  l'adresse suivante : http://www.apple-news.fr/?p=1590 .

    Il s'agit bien sûr de ma première application Mac, une application simple.

    Qu'en pensez-vous ?
  • NoNo Membre
    05:51 modifié #18
    Pour une appli n'utilisant sans doute rien de spécifique 10.5, c'est dommage de ne pas pouvoir la lancer sous 10.4.
  • 05:51 modifié #19
    Ouf je dois rester comme je suis :D
    Sinon, n'oublie pas de le gérer aussi pour les femmes, car là  c'est différent.
  • Non, pour les femmes c'est pareil, j'utilise la formule d'IMC, qui est universelle (mon père et ma mère sont médecins).

    Je compte la développer un maximum, pour m'améliorer !
  • 05:51 modifié #21
    dans 1221384417:

    Non, pour les femmes c'est pareil, j'utilise la formule d'IMC, qui est universelle (mon père et ma mère sont médecins).

    Je compte la développer un maximum, pour m'améliorer !

    Ho OK je savais pas  :o
  • clampinclampin Membre
    05:51 modifié #22
    dans 1221303840:

    Pour une appli n'utilisant sans doute rien de spécifique 10.5, c'est dommage de ne pas pouvoir la lancer sous 10.4.


    Je suis d'accord sur ce point là ....
  • CéroceCéroce Membre, Modérateur
    05:51 modifié #23
    dans 1221303840:

    Pour une appli n'utilisant sans doute rien de spécifique 10.5, c'est dommage de ne pas pouvoir la lancer sous 10.4.

    Et pour une appli n'utilisant sans doute rien de spécifique 10.4, c'est dommage de ne pas pouvoir la lancer sous 10.3.
  • RocouRocou Membre
    05:51 modifié #24
    Je me permets de remonter ce vieux sujet car j'aimerais également pouvoir quitter une application en fermant la dernière fenêtre. J'ai fait un copier-coller du code donné par Céroce:
    -(BOOL) applicationShouldTerminateAfterLastWindowClosed:(NSApplication *)theApplication<br />{<br />&nbsp; return YES;<br />}
    


    mais cela n'a aucun effet. Quelque chose a changé dans Cocoa depuis?
  • schlumschlum Membre
    05:51 modifié #25
    dans 1240219848:

    Je me permets de remonter ce vieux sujet car j'aimerais également pouvoir quitter une application en fermant la dernière fenêtre. J'ai fait un copier-coller du code donné par Céroce:
    -(BOOL) applicationShouldTerminateAfterLastWindowClosed:(NSApplication *)theApplication<br />{<br />&nbsp; return YES;<br />}
    


    mais cela n'a aucun effet. Quelque chose a changé dans Cocoa depuis?


    Non, ça n'a pas changé... Il faut toujours mettre ce code dans le delegate de l'application.
  • RocouRocou Membre
    05:51 modifié #26
    dans 1240220204:

    dans 1240219848:

    Je me permets de remonter ce vieux sujet car j'aimerais également pouvoir quitter une application en fermant la dernière fenêtre. J'ai fait un copier-coller du code donné par Céroce:
    -(BOOL) applicationShouldTerminateAfterLastWindowClosed:(NSApplication *)theApplication<br />{<br />&nbsp; return YES;<br />}
    


    mais cela n'a aucun effet. Quelque chose a changé dans Cocoa depuis?


    Non, ça n'a pas changé... Il faut toujours mettre ce code dans le delegate de l'application.

    C'est quoi le delegate de l'application? Où le trouve-t-on?
  • schlumschlum Membre
    05:51 modifié #27
    Dans Interface Builder, comme tous les delegates... Il y a la référence NSApplication, il suffit de lui connecter un objet "delegate"  ???

    Ou alors dans le code "[NSApp setDelegate:...]";
  • RocouRocou Membre
    05:51 modifié #28
    dans 1240221922:

    Dans Interface Builder, comme tous les delegates... Il y a la référence NSApplication, il suffit de lui connecter un objet "delegate"  ???

    Ou alors dans le code "[NSApp setDelegate:...]";

    On peut mettre du code dans IB?  ???
  • schlumschlum Membre
    05:51 modifié #29
    dans 1240223003:

    dans 1240221922:

    Dans Interface Builder, comme tous les delegates... Il y a la référence NSApplication, il suffit de lui connecter un objet "delegate"  ???

    Ou alors dans le code "[NSApp setDelegate:...]";

    On peut mettre du code dans IB?  ???


    Non, c'était l'alternative code...pas dans IB
  • RocouRocou Membre
    05:51 modifié #30
    dans 1240223243:

    dans 1240223003:

    dans 1240221922:

    Dans Interface Builder, comme tous les delegates... Il y a la référence NSApplication, il suffit de lui connecter un objet "delegate"  ???

    Ou alors dans le code "[NSApp setDelegate:...]";

    On peut mettre du code dans IB?  ???


    Non, c'était l'alternative code...pas dans IB

    Ha d'accord mais ça devrait fonctionner, non?
    Et pour réaliser la liaison sous IB, comment s'y prendre? Il faut partir de quoi pour aller vers quoi et choisir quoi?
  • schlumschlum Membre
    05:51 modifié #31
    Partir de l'icône " Application " (NSApplication) pour aller vers le delegate (le contrôleur bien souvent, mais ça peut être n'importe quoi d'autre... une vue perso, une fenêtre perso...)
Connectez-vous ou Inscrivez-vous pour répondre.