2010-11-20 6 views
2

Ich versuche, eine Anwendung mit jeder Schaltfläche außer einer deaktiviert zu starten. Zuerst habe ich versucht, sie über den Interface-Builder auf deaktiviert zu setzen und sie dann auf aktiviert zu setzen, wenn ich sie aktivieren muss. Allerdings, wenn ich setEnabled aufrufen: Es aktiviert sie nicht tatsächlich (ich habe sogar NSLogs, um zu sehen, ob es da war!). Zweitens habe ich auch versucht, sie zu initialisieren, um im Code (innerhalb der applicationDidFinishLaunching: -Methode) deaktiviert zu werden und sie dann wieder auf aktiviert zu setzen, aber das hat immer noch nicht funktioniert. Hat jemand einen Vorschlag zu versuchen, sie deaktiviert/aktiviert zu machen, wenn ich sie brauche?NSButton setEnabled funktioniert nicht

- (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."); 
    } 
} 

Antwort

0

Haben Sie GESPERRT oder nicht ausgewählten bedeuten?

Wenn deaktiviert, Sie nicht in der Lage sein, mit der Taste zu interagieren (dh keine Maßnahmen, die sie berühren führen wird), bis Sie sie auf setEnabled:YES zurück

Wenn diese Option aktiviert, bedeutet dies, Ihre Taste einer ausgewählten zugewiesen Steuerungszustand (UIControlStateSelected). Um seinen ausgewählten Zustand zu ändern, alles, was Sie tun müssen, ist

[button setSelected:(BOOL)]; 

Wenn könnten Sie bitte den Code einfügen, in dem Sie auf die Schaltfläche werden die Initialisierung und Einstellung seiner Eigenschaften wird es leichter zu identifizieren, was Sie vielleicht falsch machen werden.

3

Was Sie tun, sollte funktionieren. Ich nehme an, dass die Verweise auf Ihre Schaltflächen nil sind. Sie können dies überprüfen, indem Sie eine Zeile wie setzen:

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

in applicationDidFinishLaunching:.

Vielleicht haben Sie es einfach versäumt, sie im Interface Builder zu verkabeln.

+0

wow ... das macht zweimal, dass ich das heute gemacht habe ... nicht an den Controller angeschlossen! ich verknüpfte Methoden mit ihnen, aber anders als das habe ich sie nicht angeschlossen. Danke, dass du meine Dummheit erkannt hast! :) – Brandon

+0

Froh, zu helfen. Ich bin diesem Fehler nicht fremd. :) –

+0

@Brandon Wenn diese Antwort Ihr Problem gelöst hat, sollten Sie [akzeptieren.] (Http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work) – 11684

Verwandte Themen