我需要在可可应用程序的首选项窗口中设置一个滑块。
如果我像这样在 awakeFromNib 中设置 NSSlider
-(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];
以在上次应用程序退出时使用用户值更新滑块?
根据 Vadian 命题编辑的代码:
+(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];}`