Мне нужно установить ползунок в окне настроек приложения какао.
Если я установлю NSSlider в awakeFromNib вот так
-(void)awakeFromNib{
[thresholdSlider setInValue:9];
}
окно предпочтений обновляется значением при открытии.
Однако, поскольку это окно настроек, мне нужно зарегистрировать значение с помощью NSUserDefault, чтобы при запуске приложения запускалось:
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification{
[thresholdSlider setValue:[NSUserDefaults standardUserDefaults] forKey:kthresh];
NSLog( @"%@",[thresholdSlider objectValue]);
}
Но я даже не могу установить значение ползунка в методе applicationDidFinishLaunching
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification{
[thresholdSlider setIntValue:9];
NSLog( @“%d”,[thresholdSlider intValue]);}
возвращает 0, а ползунок установлен на минимальное значение (установлено в IB) в окне настроек.
Где я могу вызвать [thresholdSlider setValue:[NSUserDefaults standardUserDefaults] forKey:kthresh];
, чтобы ползунок обновлялся значением пользователя при последнем выходе из приложения?
Код отредактирован в соответствии с предложением Вадиана:
+(void)initialize{
NSDictionary *dicDefault = @{@"kthresh":@9};
[[NSUserDefaults standardUserDefaults]registerDefaults:dicDefault];}`
`- (void)applicationDidFinishLaunching:(NSNotification*)aNotification{
`//Preferences
NSInteger thresholdValue = [[NSUserDefaults standardUserDefaults] integerForKey:@"kthresh"];`
thresholdSlider.integerValue = thresholdValue;}`
`-(void)applicationWillTerminate:(NSNotification *)notification {
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setInteger:thresholdSlider.integerValue forKey:@"kthresh"];
[defaults synchronize];}`