[Bindings] Contrôler l'état d'une colonne de boutons "switch" dans une tableview

Eddy58Eddy58 Membre
04:38 modifié dans API AppKit #1
Je voudrais positionner l'état des switchs dans une colonne, mais je n'ai droit qu'à  des insultes de la part de la console ! :P

La colonne est bindée à  un NSArrayController (ChoixDiagnosticsArrayController). Celui-ci est sous-classé avec le code ci-dessous, pour l'initialiser avec un array contenant les valeurs Booléennes des switchs. Je comprend pas pourquoi il n'en veut pas. A l'exécution j'ai le message suivant :

*** Uncaught exception: <NSInternalInconsistencyException> Cannot create BOOL from object (1) of class NSCFArray


Propriété Value de la colonne :
     - Bind To : ChoixDiagnosticsArrayController (ChoixDiagnosticsArrayController)
     - Controller Key: arrangedObjects
     - MKP : choixDiagnostic

[tt]
-(void)awakeFromNib
{
NSMutableArray *choixDiagnosticsDictArray;
NSMutableDictionary *etatDiagnosticDictionary;

choixDiagnosticsDictArray=[[NSMutableArray alloc] init];

etatDiagnosticDictionary=[[NSMutableDictionary alloc] init];
[etatDiagnosticDictionary setObject:[NSNumber numberWithBool:YES] forKey:@choixDiagnostic];

[choixDiagnosticsDictArray addObject:etatDiagnosticDictionary];
     [etatDiagnosticDictionary release];
[self setContent:choixDiagnosticsDictArray];
}
[/tt]
Y-a-t-il quelque chose de spécial à  faire ? Je vais tenter de passer par un transformer...Sinon toutes suggestions sont les bienvenues comme d'habitude. :)

Réponses

  • 04:38 modifié #2
    Moi y a un truc que je comprends pas: pourquoi tu fais ça dans le NSArrayController et pas dans un controller maison?

    Ce n'est pas à  un ArrayController de fournir ce genre d'info, son rôle étant juste de prendre des données ailleurs et les présenter à  un contrôle, mais rien de plus.
  • Eddy58Eddy58 Membre
    04:38 modifié #3
    dans 1152721200:

    Moi y a un truc que je comprends pas: pourquoi tu fais ça dans le NSArrayController et pas dans un controller maison?

    Et bien disons que j'essaie de limiter le nombre de controllers au maximum, pour ne pas en créer à  chaque bricole. Dans ce cas précis, je dois en faites aller chercher les données dans une futur instance de classe modèle. Mais je vais tenter le coup à  partir d'un controller voir si ça arrange les choses. :)
  • Eddy58Eddy58 Membre
    04:38 modifié #4
    Bon, j'ai tout remis à  plat en accessorisant tout ça. Il a fallu que je fasse une classe modèle secondaire à  ma classe modèle principale pour résoudre le problème (la classe modèle principale a un conteneur pour les objets de la classe modèle secondaire). Ensuite j'ai bindé un NSArrayController sur tout ça et c'est ok maintenant. :)
    Tiens, mais c'est l'heure de l'apéro ? Intéressant... :P :p :p
Connectez-vous ou Inscrivez-vous pour répondre.