【代码笔记】iOS-只让textField使用键盘通知

来源:互联网 发布:新疆广电网络缴费方式 编辑:程序博客网 时间:2024/06/05 04:20

代码:

复制代码
#import "ViewController.h"@interface ViewController ()@end@implementation ViewController- (void)viewDidLoad {    [super viewDidLoad];    // Do any additional setup after loading the view, typically from a nib.        //为textField增加键盘事件    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(addKeyboardNoti) name:UITextFieldTextDidBeginEditingNotification object:nil];    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(removeKeyboardNoti) name:UITextFieldTextDidEndEditingNotification object:nil];}#pragma -mark -keyboard notificatin//键盘事件- (void)keyboardWillShow:(NSNotification *)notification {    NSDictionary *info = [notification userInfo];    // keyboardHeight 为键盘高度    CGSize keyboardSize = [[info objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue].size;    [self animateViewWithKeyboardHeight:keyboardSize.height];}- (void)keyboardWillHide:(NSNotification *)notification {    [self animateViewWithKeyboardHeight:0.0];}- (void)animateViewWithKeyboardHeight:(CGFloat)keyboardHeight {    NSTimeInterval animationDuration = 0.3f;    CGFloat height = self.view.bounds.size.height;    CGFloat width = self.view.bounds.size.width;    CGFloat topSize = 0.0;    CGFloat viewH = self.view.frame.size.height-64;    CGFloat deviceHeight = [UIScreen mainScreen].bounds.size.height;    CGFloat animateH = deviceHeight - viewH - keyboardHeight;    if (animateH >= 0) {        topSize = 0;        CGRect toRect = CGRectMake(0, topSize, width, height);        self.view.frame = toRect;            } else {        topSize = animateH;        CGRect toRect = CGRectMake(0, topSize, width, height);        [UIView animateWithDuration:animationDuration animations:^{            self.view.frame = toRect;        }];    }}#pragma -mark -UITextFieldText Notification//增加键盘事件-(void)addKeyboardNoti{    NSLog(@"------addKeyboardNoti-------");    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil];    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillHide:) name:UIKeyboardWillHideNotification object:nil];}//移除键盘事件-(void)removeKeyboardNoti{    NSLog(@"------removeKeyboardNoti---------");    [[NSNotificationCenter defaultCenter] removeObserver:self name:UIKeyboardWillShowNotification object:nil];    [[NSNotificationCenter defaultCenter] removeObserver:self name:UIKeyboardWillHideNotification object:nil];}- (void)didReceiveMemoryWarning {    [super didReceiveMemoryWarning];    // Dispose of any resources that can be recreated.}@end
复制代码

 

原创粉丝点击