·您现在的位置: 云翼网络 >> 文章中心 >> 网站建设 >> app软件开发 >> IOS开发 >> (ios)nsnotification总结

(ios)nsnotification总结

作者:佚名      IOS开发编辑:admin      更新时间:2022-07-23

1  文本输入,键盘显示时,view向上,键盘隐藏时,view向下

1.1 注册键盘显示,关闭通知,并实现主界面上下变动

 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil];
    
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillHide:) name:UIKeyboardWillHideNotification object:nil];
}


-(void)keyboardWillShow:(NSNotification *)aNotification
{

    CGRect keyBoardRect=[[[aNotification userInfo]objectForKey:UIKeyboardFrameBeginUserInfoKey]CGRectValue];
    
    NSTimeInterval animalInterval=[[[aNotification userInfo]objectForKey:UIKeyboardAnimationDurationUserInfoKey] doubleValue];
    CGRect frame=self.view.frame;
    frame.origin.y=-keyBoardRect.size.height;
    [UIView beginAnimations:@"keyboardshow" context:nil];
    [UIView setAnimationDuration:animalInterval];
    self.view.frame=frame;
    [UIView commitAnimations];


}

-(void)keyboardWillHide:(NSNotification *)aNotification
{

    NSTimeInterval animalInterval=[[[aNotification userInfo]objectForKey:UIKeyboardAnimationDurationUserInfoKey] doubleValue];
    CGRect frame=self.view.frame;
    frame.origin.y=0;
    [UIView beginAnimations:@"keyboardhide" context:nil];
    [UIView setAnimationDuration:animalInterval];
    self.view.frame=frame;
    [UIView commitAnimations];
    
}

1.2 文本框初始化,并实现UITextViewDelegate委托

    self.textbox.returnKeyType=UIReturnKeyDone;
    self.textbox.delegate=self;
}

 - (BOOL)textFieldShouldReturn:(UITextView *)textView
{
 [textView resignFirstResponder];
    return YES;
}

 

2 自定义notification

 2.1 定义侦听自定义notification观察者

//注册观察者,侦听自定义通知
    [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(selfNotificationDO:) name:@"CustomNotification" object:nil];

}

-(void)selfNotificationDO:(NSNotification *)aNotification
{
     //处理notification
    //........
}

2.2 生成一个自定义notification

//生成一个自定义Notification
    [[NSNotificationCenter defaultCenter] postNotificationName:@"CustomNotification" object:self];