2010-11-20 16 views
2

J'essaye de démarrer une application avec chaque bouton désactivé sauf un. Tout d'abord, j'ai essayé de les mettre en mode désactivé via le constructeur de l'interface, puis les ai activés quand j'ai besoin qu'ils soient activés. Cependant, quand j'appelle setEnabled: il ne les active pas réellement (j'ai même fait NSLogs pour voir s'il y arrivait!). Deuxièmement, j'ai également essayé de les initialiser pour être désactivés dans le code (dans la méthode applicationDidFinishLaunching:), puis de les définir de nouveau sur enabled, mais cela ne fonctionnait toujours pas. Est-ce que quelqu'un a une suggestion pour essayer de les rendre désactivés/activés quand j'en ai besoin?NSButton setEnabled ne fonctionne pas

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification 
{ 
    [loadImageButton setEnabled:NO]; 
    [autoFitButton setEnabled:NO]; 
    [estimateAgeButton setEnabled:NO]; 
    [ageProgressButton setEnabled:NO]; 
} 


- (IBAction)loadAAMModel:(id)sender 
{ 
    ... 
    ... 
    if (waam.ModelLoaded) { 
     [modelNameLabel setStringValue:f]; 
     [svmLabel setStringValue:svmPath]; 
     [ageTableLabel setStringValue:ageTable]; 
     NSLog(@"model loaded...set loadImageButton to Enabled!"); 
     [loadImageButton setEnabled:YES]; 
     NSLog(@"loadImageButton set to Enabled."); 
    } 
} 

Répondre

0

Voulez-vous dire HANDICAPÉS ou UNSELECTED?

Si elle est désactivée, vous ne serez pas en mesure d'interagir avec le bouton (c.-à aucune action résultera de toucher) jusqu'à ce que vous les remises à setEnabled:YES

Si sélectionné, cela signifie que votre bouton sera attribué un sélectionné état de contrôle (UIControlStateSelected). Pour changer l'état sélectionné, tout ce que vous avez à faire est

[button setSelected:(BOOL)]; 

Si vous pouvez coller le code s'il vous plaît où vous INITIALISATION le bouton et le réglage de ses propriétés, il sera plus facile d'identifier ce que vous pourriez faire mal.

3

Ce que vous faites devrait fonctionner. Je vais deviner que les références à vos boutons sont nil. Vous pouvez vérifier cela en mettant une ligne comme:

NSLog(@"loadImageButton = %@", loadImageButton); 

dans applicationDidFinishLaunching:. Peut-être avez-vous simplement négligé de les câbler dans Interface Builder.

+0

wow ... ça fait deux fois que je l'ai fait aujourd'hui ... pas accroché au contrôleur! Je leur ai lié des méthodes mais à part ça je ne les ai pas branché. merci de reconnaître ma stupidité! :) – Brandon

+0

Content de vous aider. Je ne suis pas étranger à cette erreur moi-même. :) –

+0

@Brandon Si cette réponse a résolu votre problème, vous devriez [l'accepter.] (Http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work) – 11684