[Bindings] Contrôler l'état d'une colonne de boutons "switch" dans une tableview
Eddy58
Membre
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 :
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.
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.
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
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.
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.
Tiens, mais c'est l'heure de l'apéro ? Intéressant... :P