首页 > 系统 > iOS > 正文

iOS中只让textField使用键盘通知的实例代码

2020-07-26 02:44:54
字体:
来源:转载
供稿:网友

代码:

#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

总结

以上所述是小编给大家介绍的iOS中只让textField使用键盘通知的实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对武林网网站的支持!

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表