iOS 数字键盘完成键
来源:互联网 发布:深圳市软件开发公司 编辑:程序博客网 时间:2024/04/27 18:07
1、首先在 viewWillAppear 方法中注册监听相应的键盘通知,并且要在 viewWillDisappear 方法中注销通知
- (void)viewWillAppear:(BOOL)animated { //注册键盘显示通知 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(handleKeyboardDidShow:) name:UIKeyboardWillShowNotification object:nil]; //注册键盘隐藏通知 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(handleKeyboardWillHide:) name:UIKeyboardWillHideNotification object:nil]; [super viewWillAppear:animated];}
-(void)viewWillDisappear:(BOOL)animated{ //注销键盘显示通知 [[NSNotificationCenter defaultCenter] removeObserver:self name:UIKeyboardWillShowNotification object:nil]; [[NSNotificationCenter defaultCenter] removeObserver:self name:UIKeyboardWillHideNotification object:nil]; [super viewWillDisappear:animated];}
2、处理键盘弹出和收起事件
// 键盘出现处理事件- (void)handleKeyboardDidShow:(NSNotification *)notification{ // NSNotification中的 userInfo字典中包含键盘的位置和大小等信息 NSDictionary *userInfo = [notification userInfo]; // UIKeyboardAnimationDurationUserInfoKey 对应键盘弹出的动画时间 CGFloat animationDuration = [[userInfo objectForKey:UIKeyboardAnimationDurationUserInfoKey] floatValue]; // UIKeyboardAnimationCurveUserInfoKey 对应键盘弹出的动画类型 NSInteger animationCurve = [[userInfo objectForKey:UIKeyboardAnimationCurveUserInfoKey] integerValue]; //数字彩,数字键盘添加“完成”按钮 if (doneInKeyboardButton){ [UIView beginAnimations:nil context:NULL]; [UIView setAnimationDuration:animationDuration];//设置添加按钮的动画时间 [UIView setAnimationCurve:(UIViewAnimationCurve)animationCurve];//设置添加按钮的动画类型 //设置自定制按钮的添加位置(这里为数字键盘添加“完成”按钮) doneInKeyboardButton.transform=CGAffineTransformTranslate(doneInKeyboardButton.transform, 0, -53); [UIView commitAnimations]; } }
// 键盘消失处理事件- (void)handleKeyboardWillHide:(NSNotification *)notification{ // NSNotification中的 userInfo字典中包含键盘的位置和大小等信息 NSDictionary *userInfo = [notification userInfo]; // UIKeyboardAnimationDurationUserInfoKey 对应键盘收起的动画时间 CGFloat animationDuration = [[userInfo objectForKey:UIKeyboardAnimationDurationUserInfoKey] floatValue]; if (doneInKeyboardButton.superview) { [UIView animateWithDuration:animationDuration animations:^{ //动画内容,将自定制按钮移回初始位置 doneInKeyboardButton.transform=CGAffineTransformIdentity; } completion:^(BOOL finished) { //动画结束后移除自定制的按钮 [doneInKeyboardButton removeFromSuperview]; }]; }}
3、点击输入框,初始化自定制按钮并弹出键盘
//点击输入框- (IBAction)editingDidBegin:(id)sender{ //初始化数字键盘的“完成”按钮 [self configDoneInKeyBoardButton];}
//初始化,数字键盘“完成”按钮- (void)configDoneInKeyBoardButton{ CGFloat screenHeight = [UIScreen mainScreen].bounds.size.height; //初始化 if (doneInKeyboardButton == nil) { doneInKeyboardButton = [[UIButton buttonWithType:UIButtonTypeCustom] retain]; [doneInKeyboardButton setTitle:@"完成" forState:UIControlStateNormal]; [doneInKeyboardButton setTitleColor:[UIColor blackColor] forState:UIControlStateNormal]; doneInKeyboardButton.frame = CGRectMake(0, screenHeight, 106, 53); doneInKeyboardButton.adjustsImageWhenHighlighted = NO; [doneInKeyboardButton addTarget:self action:@selector(finishAction) forControlEvents:UIControlEventTouchUpInside]; } //每次必须从新设定“完成”按钮的初始化坐标位置 doneInKeyboardButton.frame = CGRectMake(0, screenHeight, 106, 53); //由于ios8下,键盘所在的window视图还没有初始化完成,调用在下一次 runloop 下获得键盘所在的window视图 [self performSelector:@selector(addDoneButton) withObject:nil afterDelay:0.0f]; }- (void) addDoneButton{ //获得键盘所在的window视图 UIWindow* tempWindow = [[[UIApplication sharedApplication] windows] objectAtIndex:1]; [tempWindow addSubview:doneInKeyboardButton]; // 注意这里直接加到window上 }
//点击“完成”按钮事件,收起键盘-(void)finishAction{ [[[UIApplication sharedApplication] keyWindow] endEditing:YES];//关闭键盘}
0 0
- iOS 数字键盘完成键
- ios隐藏数字键盘 --在数字键盘左下角添加“完成”按钮的实现原理
- ios在数字键盘左下角添加“完成”按钮的实现原理
- ios8数字键盘添加完成
- iOS 之给苹果自带的纯数字键盘添加完成事件
- ios 键盘 之 数字键盘
- iOS自定义数字键盘
- [iOS]数字键盘(Number Pad)没有返回键吗?
- iOS8数字键盘左下角添加完成按钮
- 给数字键盘添加完成按钮的坑
- IOS自定义的数字键盘 FPNumberPadView
- iOS自定义输入法之数字键盘
- IOS 自定义简陋的数字键盘
- ios中如何自定义数字键盘
- iOS swift 自定制控件(数字键盘)
- 自动弹出数字键盘 EditText(Android) UITextField(iOS)
- iOS8数字键盘左下角添加完成按钮的核心代码如下:
- iOS_为数字键盘增加完成按钮即ToolBar
- 探索数据库的事务隔离级别
- Unity3D MVC结构
- LeetCode *** 61. Rotate List
- web开发初学建议
- 类购物车的全选反选效果
- iOS 数字键盘完成键
- Android性能优化
- Android 网络通信框架Volley简介
- 2016.4.25.周一
- ScrollView属性
- Python 用hashlib求中文字符串的MD5值
- malloc和new的区别
- 万万没想到,课件还可以这样制作!
- NYOJ 15 括号匹配(二) 区间dp