2 Stimmen

NSButton setEnabled funktioniert nicht

Ich versuche, eine Anwendung zu starten, bei der jeder Button deaktiviert ist, außer einem. Zunächst habe ich versucht, sie über den Interface Builder auf deaktiviert zu setzen und sie dann zu aktivieren, wenn sie aktiviert werden sollen. Allerdings, wenn ich setEnabled: aufrufe, werden sie tatsächlich nicht aktiviert (ich habe sogar NSLogs gemacht, um zu sehen, ob es da ankam!). Zweitens habe ich auch versucht, sie im Code auf deaktiviert zu initialisieren (im AnwendungDidFinishLaunching: Methode) und sie dann noch einmal zu aktivieren, aber das hat trotzdem nicht funktioniert. Hat jemand einen Vorschlag, um sie zu deaktivieren/aktivieren, wenn ich will?

- (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(@"Modell geladen... setze loadImageButton auf Enabled!");
         [loadImageButton setEnabled:YES];
         NSLog(@"loadImageButton auf Enabled gesetzt.");
    }
}

3voto

James Huddleston Punkte 8302

Was du machst, sollte funktionieren. Ich vermute, dass die Verweise auf deine Schaltflächen nil sind. Du kannst dies überprüfen, indem du eine Zeile wie diese einfügst:

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

in applicationDidFinishLaunching:.

Vielleicht hast du einfach vergessen, sie in Interface Builder zu verbinden.

0voto

Rog Punkte 18402

Meinen Sie DEAKTIVIERT oder NICHT AUSGEWÄHLT?

Wenn deaktiviert, können Sie nicht mit der Schaltfläche interagieren (d.h. es erfolgt keine Aktion, wenn Sie sie berühren), bis Sie sie wieder auf setEnabled:YES setzen

Wenn ausgewählt, bedeutet dies, dass Ihre SCHALTFLÄCHE einem ausgewählten Steuerungsstatus zugeordnet wird (UIControlStateSelected). Um ihren ausgewählten Status zu ändern, müssen Sie lediglich

[button setSelected:(BOOL)];

Wenn Sie bitte den Code einfügen könnten, in dem Sie die Schaltfläche initialisieren und ihre Eigenschaften setzen, würde es einfacher sein zu erkennen, was Sie möglicherweise falsch machen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X