J'ai un NSPopUpButton dont les valeurs de contenu sont liées à un NSArray de NSNumbers. Le NSPopUpButton affiche correctement le tableau de nombres dans son menu contextuel. Cependant, quand je change la valeur sélectionnée, je reçois un message:NSFormatter utilisé avec un NSPopUpButton
HIToolbox: ignoring exception 'Unacceptable type of value for attribute: property = "tempo"; desired type = NSNumber; given type = NSCFString; value = 106.' that raised inside Carbon event dispatch
De toute évidence, ce phénomène se produit parce que l'objet auquel la valeur sélectionnée est liée à attend un NSNumber et le NSPopUpButton est lui donnant une NSString . En regardant à travers les autres posts, je pense que j'ai besoin d'un NSNumberFormatter.
Cependant, j'ai essayé d'utiliser NSNumberFormatter, à la fois via Interface Builder et par programmation, mais le résultat ne change pas. Pour référence, voici le code que je l'ai utilisé lors d'une tentative de régler le formatter du NSPopUpButton programatically:
tempoFormatter = [[NSNumberFormatter alloc] init];
[tempoFormatter setFormatterBehavior:NSNumberFormatterBehavior10_4];
[tempoFormatter setFormat:@"### bpm"];
[[tempoButton cell] setFormatter:tempoFormatter];
(tempoButton est un IBOutlet connecté au NSPopUpButton)
Je me demande si vous utilisez un NSNumberFormatter est même ce dont j'ai besoin? Si oui, qu'est-ce que je fais de mal? J'ai lu le Guide de programmation de formatage de données; Cela semble très simple, mais j'ai l'impression qu'il me manque quelque chose.
Merci d'avance.
Comment obtenez-vous l'objet sélectionné? Êtes-vous lié à 'selectedObject'? – kubi