Domanda

Ho avuto un evento sul mio NSSlider con questo codice:

- (IBAction)optOndoorzichtigheidChange:(id)sender {
    NSUserDefaults* defaults = [NSUserDefaults standardUserDefaults];
    NSString *opacity = [NSString stringWithFormat:@"%d",[optOndoorzichtigheidSlider value]];
    [defaults setObject:opacity forKey:@"opacity"];
    [mainWindow setAlphaValue:[optOndoorzichtigheidSlider doubleValue]];
    [defaults synchronize];
    [optOndoorzichtigheidLabel setStringValue:opacity];
    NSLog(@"fired");
}

Ma non è sparare e la console dà questo messaggio: 2011-01-09 19: 31: 18,994 Nistract [1337: a0f] - [valore NSSlider]: selettore non riconosciuto inviato ad esempio 0x100427400

È stato utile?

Soluzione 3

Ora uso questo codice e sembra funzionare:

- (IBAction)optOndoorzichtigheidChange:(id)sender {
    NSUserDefaults* defaults = [NSUserDefaults standardUserDefaults];
    NSString *opacity = [NSString stringWithFormat:@"%d",[optOndoorzichtigheidSlider intValue]];
    [defaults setObject:opacity forKey:@"opacity"];
    [[mainWindow animator] setAlphaValue:((double) [optOndoorzichtigheidSlider intValue] / 100)];
    [defaults synchronize];
    [optOndoorzichtigheidLabel setStringValue:opacity];
    NSLog(@"fired");
}

Altri suggerimenti

Il metodo è di esecuzione. Stai solo crash, perché si sta cercando di eseguire un metodo che non esiste.

Il problema è questa linea:

NSString *opacity = [NSString stringWithFormat:@"%d",[optOndoorzichtigheidSlider value]];

NSSlider non ha un metodo value. Ha un metodo di doubleValue che restituisce un double.

Hai hard-coded tuo cursore. Invece di chiamate come questo

[optOndoorzichtigheidSlider intValue];

provare a utilizzare il sender

[sender intValue];

E sembra che si sta aggiornando un'etichetta con il valore qui

[optOndoorzichtigheidLabel setStringValue:opacity];

Quando si potrebbe considerare l'utilizzo di Associazioni, invece.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top