Créons un projet "Aide".
A la relecture je m'aperçois que c'est pas très malin d'avoir appelé le projet "Aide" car cela fera pour une version française "Aide Aide", et même "Aide Help" pour l'English.Iproj, c'est pas terrible non plus. Le principe étant valable quelque soit le nom, je ne refais pas tout le travail de capture d'écran.
Donnons le nom "Aide" à notre help.
Notez, la connexion à l'action "showHelp" est déjà là, implicitement créé dans les menus par xCode.
Rien à faire dans au niveau du script.
Idem rien à faire dans au niveau Attributes. Le nom "Help" a été mis par xCode.
Vous créez la structure en html de votre aide dans un dossier avec votre logiciel habituelle (J'utile BBEdit ou Coda). Créez autant de page html que vous voulez, avec index.html comme point d'entrée. Vous lui donnez un nom à vous. Je l'ai appelé "Aide Help" (nomDuProjet Help).
Placez ce dossier de structure en html dans le dossier projet "English.Iproj".
Dans le but de pouvoir par la suite localiser en d'autre langue, il est important de placer à la main le dossier html dans English.Iproj et non au niveau du dessus projet.
La page d'entrée s'appelle "index.html" comme toujours, et doit avoir impérativement le tag "AppleTitle". J'ai donné la valeur "AideHelp" sans blanc.
Faisons glisser ce dossier html "Aide Help" vers xCode, et déposons le dans Resources.
Le Pop Up menu pour la prise en charge dans xCode apparaît. Prenez les options UTF-16. Ne cochez pas "Copy...", sinon le dossier html sera dupliqué au niveau projet. Sa place est dans English.Iproj, si vous voulez localiser dans d'autre langue par la suite.
Cliquez sur "Add".
Notez la différence entre "Recursively...." et "Create Folder References ....".
Dans mon exemple, j'ai choisi de placer le dossier html moi-même dans English.Iproj, donc option Recursively.
Votre dossier html est dans xCode.
Faisons le lien entre index.html et xCode en créant dans le fichier "InfoPlist.strings" de "English.Iproj" les paramètres CFBundleHelpBookFolder et CFBundleHelpBookName.
IL va de soit que si vous faites par la suite une version française, italienne, etc, il faudra adapter tous ces noms de pointeurs dans leur InfoPlist.strings de langue locale.
J'ai eu plusieurs fois ce message.
Majoritairement cela indique que le dossier html n'a pas été pris en compte correctement par xCode. Il n'y a rien à chercher du côté de Interface Builder, tout est déjà en place à la création du projet. Idem, pour les fonctions comme "cut", "paste", etc
Donc, vérifiez que le bookName correspond bien au tab AppleTitle de index.html.
Placez bien votre dossier html d'aide dans le dossier du projet English.Iproj avant de le glisser sur le dossier "Resources" pour le référencer.
J'ai pas mal cafouillé. probablement du à l'option "Copy" qui faisait que j'avais mon dossier html à deux endroits. Je m'en suis tiré en repartant à zéro en supprimant le dossier html de xCode, corrigé AppleTitle dans index.html, ré-introduit le dossier html dans English.Iproj et xCode, et tout rentra dans l'ordre.
Je reconnais que ce conseil n'est pas très scientifiques, mais c'est comme cela que j'y suis arrivé plus rapidement, en installant à nouveau le dossier html.
If you’ve registered your help information in your application’s property list (Info.plist), when the user chooses the Help menu item the help file you specified for your application is displayed. This file should be the starting point of your help, and should allow users to access whatever information they might need. .
Place a folder containing your help files in the Resources folder inside your application’s bundle. An HTML meta tag in must be specified on your help’s title page (the “AppleTitle” tag). Use Xcode to specify the two necessary Info.plist keys, which are CFBundleHelpBookFolder and CFBundleHelpBookName. .
It’s possible for applications to have more than one command under the Help menu and to have each command open a different help file. To implement this, connect each of the Help menu commands to a different action method. The action methods should call one of the functions from the Apple Help API to display your help.