NSComboBox complété par l'utilisateur
Veillard
Membre
Bonjour,
J'ai plusieurs NSComboBox qui sont susceptibles d'êtres modifiées par l'utilisateur final (ajout ou suppression d'items). Est-il possible de créer un fichier contenant les différents items qui sera appelé automatiquement lors du lancement de l'application ? Si oui, à quel endroit placer ce fichier en question ?
Merci
Favouille
J'ai plusieurs NSComboBox qui sont susceptibles d'êtres modifiées par l'utilisateur final (ajout ou suppression d'items). Est-il possible de créer un fichier contenant les différents items qui sera appelé automatiquement lors du lancement de l'application ? Si oui, à quel endroit placer ce fichier en question ?
Merci
Favouille
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Pour ce qui est de gérer la liste des items des combo:
1°) Tu peux utiliser le modèle datasource pour maintenir un Array de valeur pour chaque comboBox
2°) Tu peux créer un Array pour chaque comboBox et binder les conboDessus.
Pour enregistrer les listes d'items tu peux le faire:
1°) Directement dans le document si les combo doivent pouvoir afficher des valeurs en fonction du document ouvert.
ou mieux
2°) Dans les préférences utilisateurs (la combo se souvient des plongées préférées de l'utilisateur courrant )
Et pour ce faire
- Soit tu causes direct avec les UserDefaults
- Soit tu confies chaque Array à un ArrayController que tu bindes sur contrôleur Shared User Default. Et là tu t'occupes plus de rien sauf l'ajout et le retrait de valeurs dans la combo-list.
P.S.1: A part ça tu vas bien ?
P.S.2: pour ce qui est de l'impression de tes tablesView je n'en ai pas encore assez l'expérience pour te répondre
Sinon à part le fichier préférences, il existe un emplacement standard permettant aux applis de stocker des données annexes, c'est ~/library/Application Support, tu te crées un dossier pour ton appli et tu y mets ce que tu veux
Sinon ton appli Labo Photo plante au démarrage, car tu as oublié de passer en deployment built et y a le zero link qui est pas contentÂ
Après un long silence radio, je reviens sur les ondes... Je profite de quelques jours de vacances pour continuer mon appli qui fait son petit bout de chemin (j'en suis à la b23 :trinque:) et qui ravit quelques plongeurs :brule: (j'aime bien cette animation...)
De plus je dors beaucoup mieux depuis que le petit (3 mois) a fait ses nuits
En ce qui concerne mes comboBox, j'affecte actuellement un array pour chaque combo avec des items préalablement sélectionnés qui ne conviennent pas forcément à tout le monde :P
D'après vos solutions, je verrais bien les données stockées dans les préférences utilisateurs mais pourquoi pas utiliser le répertoire "~/library/Application Support" comme le suggère Mpergand ? J'hésite ???
Je pense que l'idéal serait de faire un fichier XML visible qui pourrait être modifié éventuellement avec n'importe quel traitement de texte (ce qui suppose que l'utilisateur connaisse ce type de fichier) à voir...
Pour l'appli "Labo Photo", c'est réparé ;D elle ne casse pas 3 pattes à un canard, c'est un réchauffé de l'autre appli, mais j'en avais besoin sur le moment.
A+
Favouille
Pourquoi ne pas faire des préférences, et proposer un NSTableView éditable qui liste les options de chaque NSComboBox ?? Tu enregistres les datas du NSTableview en les gérant avec NSArchiver, et la configuration de tes NSComboBox devient ainsi plus "user-friendly", non ?
Même si on le peut le faire c'est, je crois, moins dans la philosophie des Application Support.
De mon coté j'aime assez quand, à chaque fois qu'on entre une nouvelle valeur dans la combo, l'appli propose d'ajouter cette valeur à la liste.
En ajoutant soit un bouton et ou menu "rest combo to default" voire un bouton "supprimer la sélection en cours de la liste" ...
De cette façon la combo se personnalise au fur et à mesure de l'usage de l'appli.
Je trouve ça plus cool que d'avoir à utiliser une listing même en tableView pour personaliser le menu de la combo.
Moi je trouve ça top.
Y'a rien à coder pour que ça marche hors mis l'ajout-Suppression d'item qui peut se faire tant par les methodes de NSComboBox elle-mêmes que, comme tu le suggères, par une NSTableView elle même également bindée sur l'ArrayController qui gère les items de la combo et à ce moment là y'a carrément plus rien à coder.
Mais j'ai néanmoins une préférence pour l'accès par les méthodes de comboBox au fur et à mesure que l'appli détecte de nouvelles valeurs pertinentes à ajouter à la liste.
Après avoir lu les différents posts et observé différents softs :P, j'ai remarqué que ce qu'il se faisait le plus, c'est de proposer à l'utilisateur de valider ou non une nouvelle entrée coome l'a suggéré ClicCool. L'idée d'Eddy58 fait aussi partie de ce que j'ai pu voir, c'est à dire de gérer les différentes données dans une TableView afin de virer la ou les données mal orthographiées ou obsolètes.
Il est vrai que l'avantage de la table, c'est que l'on peut voir l'ensemble des items en une seule fois. ;D
J'avance dans mes ComboBox, j'ai donc décidé de les intégrer aux préfs. utilisateur. Cependant j'ai un problème : je n'arrive plus à recharger mes valeurs sauvées dans les prefs sous forme d'un array, pourtant j'ai essayé ceci :
Avez-vous une idée ? ???
A+
J'ai essayé ceci :
En revanche, comment faire en sorte que la ComboBox détecte automatiquement une nouvelle entrée qui ne fait pas partie de la liste ?
Merci