Quizz : NSArrayController rempli de NSString
Philippe49
Membre
L'exemple de Hillegass avec Employee liste les employés en synchronisant/bindant la table view avec le champ Employees.personName
Les objets ont un champ de type NSString présentés dans la table view, et transformable via la table view.
Mais si l'array controller ne contient que des NSStrings, directement. Que va-t-on mettre comme binding dans la table view pour que cela soit transformable ?
Votre Solution ?
Les objets ont un champ de type NSString présentés dans la table view, et transformable via la table view.
Mais si l'array controller ne contient que des NSStrings, directement. Que va-t-on mettre comme binding dans la table view pour que cela soit transformable ?
Votre Solution ?
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
J'ai l'impression que tu veux dire: "si on ne fixe pas l'outlet ou le binding content, comment binde-t-on le contenu du NSArrayController ?".
Dans ce cas, le NSArrayController crée un NSMutableArray en interne, et tu peux accéder à ses objets comme d'habitude.
Tu mets quoi alors dans le binding value de la table column ? "arrangedObjects" tout seul ?
Du coup, j'ai fait l'essai en bindant seulement sur arrangedObjects, et ça ne fonctionne pas:
Je ne crois pas qu'on puisse faire cela avec un NSArrayController.
Ah cela fait plaisir d'être compris dans son chagrin
Pour l'instant j'essaie de déclarer la classe du arrayController en NSMutableString, de faire une catégorie sur NSMutableString avec une méthode -(NSMutableString*)string { return self;} sachant que setString: est déjà une méthode de NSMutableString.
Et je binde à arrangedObjects.string. Qu'en penses-tu ?
Une autre méthode pourrait être de déclarer une catégorie setValue:forUndefinedKey:.
Mais ça reste de la bidouille. Ta question est intéressante mais relève du cas d'école. En pratique, il va bien falloir initialiser la NSString, en lui donnant une valeur par défaut, en générant du texte, ou en lisant depuis un fichier: ce que je ferais, ce serait simplement déclarer la NSString comme une propriété d'un objet.
Oui ou de sous-classer le NSArrayController
Pas vraiment, le problème s'est posé pour moi avec un NSUserDefaults contenant une NSArray de strings justement (liste de mots clés customisable par l'utilisateur)