使用NSUserDefaults基于NSPopUpButton选择保存NSTextField属性

时间:2013-10-25 23:27:10

标签: cocoa nsuserdefaults nstextfield

我在我的应用中添加了一个选项来更改NSTextField的背景颜色和textColor。我设置NSPopUpButton并根据NSPopUpButton中的所选项目更改颜色。我想使用NSUserDefaults保存此选择。我正在使用此方法来更改backgroundColor和textColor,它的工作原理。如何使用NSUserDefaults保存属性并将其设置为启动?

- (IBAction)addBarColor:(id)sender {
    if ([addBarColor.titleOfSelectedItem isEqualToString:@"White"]) {
        addressBar.backgroundColor = [NSColor whiteColor];
        addressBar.textColor = [NSColor blackColor];
    }
    else {
        //default state
        addressBar.backgroundColor = [NSColor redColor];
        addressBar.textColor = [NSColor whiteColor];
    }
}

1 个答案:

答案 0 :(得分:0)

首先在您的操作方法中设置如下: -

现在,无论何时设置颜色,它都会保存为默认颜色,这里只添加两行

- (IBAction)addBarColor:(id)sender {
       NSUserDefaults *default=[NSUserDefaults standardUserDefaults];
[default setObject:addBarColor.titleOfSelectedItem forKey:@"selectedColor"];
//Process your code
}

//现在只需从默认值中读取保存的颜色,然后设置为弹出按钮

-(void)awakeFromNib
{
 NSUserDefaults *default=[NSUserDefaults standardUserDefaults];
NSString *defColor=[default ObjectForKey:@"selectedColor"];
if (defColor)
{
[addBarColor selectItemWithTitle:defColor];
}

}