Событие nsslider не стреляющее
Вопрос
У меня есть событие на моем Nsslider с этим кодом:
- (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");
}
Но это не стрельба, а консоль дает это сообщение: 2011-01-09 19: 31: 18.994 Nistract [1337: A0F] - [NSSLIDER Value]: Недознанный селектор, отправленный на экземпляр 0x100427400
Решение 3
Теперь я использую этот код, и кажется, работает:
- (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");
}
Другие советы
Метод является выполнение. Вы просто разбиваете, потому что вы пытаетесь выполнить метод, который не существует.
Проблема в этой строке:
NSString *opacity = [NSString stringWithFormat:@"%d",[optOndoorzichtigheidSlider value]];
NSSlider
не имеет value
метод. Оно имеет doubleValue
метод, который возвращает double
.
Вы жестко закодировали свой слайдер. Вместо звонков, как это
[optOndoorzichtigheidSlider intValue];
попробуйте использовать sender
[sender intValue];
И похоже, вы обновляете ярлык со значением здесь
[optOndoorzichtigheidLabel setStringValue:opacity];
Когда вы можете рассмотреть возможность использования привязки вместо этого.