序列化与反序列化(NSDictionary),监听键盘

@interface ViewController ()

#define FileName @"Student.plist"

#define KName @"KName"
#define KBirth @"KBirth"
#define KSex @"KSex"
#define KNumber @"KNumber"
#define KHome @"KHome"

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(KeyboardWillShow) name:UIKeyboardWillShowNotification object:nil];
    
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(KeyboardWillHide) name:UIKeyboardWillHideNotification object:nil];
    
    NSDictionary *dictionary=[NSDictionary dictionaryWithContentsOfFile:[self filePath]];
    if (dictionary) {
        self.nameField.text=[dictionary objectForKey:KName];
    }
}
     


- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}
- (IBAction)save:(id)sender {
    
    do {
        NSString *name=[self.nameField text];
        NSString *bith=[self.birthField text];
        NSInteger sex=[self.sexSeg selectedSegmentIndex];
        NSString *home=[self.homeField text];
        NSString *number=[self.numberField text];
        if (!name||!bith||!home||!number) {
            break;
        }
        
        NSMutableDictionary *dic=[NSMutableDictionary dictionary];
        [dic setObject:name forKey:KName];
        [dic setObject:bith forKey:KBirth];
        [dic setObject:[NSNumber numberWithInteger:sex] forKey:KSex];
        [dic setObject:number forKey:KNumber];
        [dic setObject:home forKey:KHome];
        
        if ([dic writeToFile:[self filePath] atomically:YES]) {
            UIAlertView *alertView=[[UIAlertView alloc]initWithTitle:@"保存成功!" message:nil delegate:nil cancelButtonTitle:@"确定" otherButtonTitles:nil, nil];
            [alertView show];
        }
        return;
        
    } while (0);

    UIAlertView *alertView=[[UIAlertView alloc]initWithTitle:@"警告" message:@"基本信息不能为空" delegate:nil cancelButtonTitle:@"确定" otherButtonTitles:nil, nil];
    [alertView show];
}

//返回沙盒路径
- (NSString *)filePath
{
    NSArray *array=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *path=  [[array objectAtIndex:0] stringByAppendingPathComponent:FileName];
    return path;
}


- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    [self.nameField resignFirstResponder];
    [self.birthField resignFirstResponder];
    [self.numberField resignFirstResponder];
    [self.homeField resignFirstResponder];
}
- (void)KeyboardWillShow
{
    [UIView beginAnimations:@"show" context:nil];
    [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
    CGRect rect=self.view.frame;
    rect.origin.y=-40;
    self.view.frame=rect;
    [UIView commitAnimations];
}
- (void)KeyboardWillHide
{
    [UIView beginAnimations:@"hide" context:nil];
    [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
    CGRect rect=self.view.frame;
    rect.origin.y=0;
    self.view.frame=rect;
    [UIView commitAnimations];
}
View Code

 

posted @ 2015-08-09 23:10  一只简单的码农  阅读(407)  评论(0编辑  收藏  举报