iOS 系统数字键盘左下角加确定按钮
- 首先在 viewWillAppear 方法中注册监听相应的键盘通知,并且要在 viewWillDisappear 方法中注销通知
- (void)viewWillAppear:(BOOL)animated {- [super viewWillAppear:animated];
- //注册键盘显示通知
- [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(handleKeyboardDidShow:) name:UIKeyboardWillShowNotification object:nil];
- //注册键盘隐藏通知
- [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(handleKeyboardWillHide:) name:UIKeyboardWillHideNotification object:nil];
- }
- -(void)viewWillDisappear:(BOOL)animated{
- [super viewWillDisappear:animated];
- //注销键盘显示通知
- [[NSNotificationCenter defaultCenter] removeObserver:self name:UIKeyboardWillShowNotification object:nil];
- [[NSNotificationCenter defaultCenter] removeObserver:self name:UIKeyboardWillHideNotification object:nil];
- }
处理键盘弹出和收起事件
- // 键盘出现处理事件
- - (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=CGAffineTransformMakeTranslation(, -);
- [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];
- }];
- }
- }
在textField代理中调用加载按钮方法
- #pragma mark -- UITextFieldDelegate
- - (void)textFieldDidBeginEditing:(UITextField *)textField
- {
- //初始化数字键盘的“完成”按钮
- if(doneInKeyboardButton.superview==nil)
- [self configDoneInKeyBoardButton];
- }
- - (void) addDoneButton{
- //获得键盘所在的window视图
- NSArray *array= [[UIApplication sharedApplication]windows];
- for (UIWindow *window in array) {
- NSString *str=NSStringFromClass([window class]);
- if ([str isEqualToString:@"UIRemoteKeyboardWindow"]) {
- [window addSubview:doneInKeyboardButton];
- }
- }
- }
- //点击“完成”按钮事件,收起键盘
- -(void)finishAction{
- [[[UIApplication sharedApplication] keyWindow] endEditing:YES];//关闭键盘
- }
如果用户安装了其他输入法,会出错,因此在APPDelegate中禁止第三方的输入法
- -(BOOL)application:(UIApplication *)application shouldAllowExtensionPointIdentifier:(NSString *)extensionPointIdentifier{
- return NO;
- }
iOS 系统数字键盘左下角加确定按钮的更多相关文章
- ios在数字键盘左下角添加“完成”按钮的实现原理
本文转载至 http://www.itnose.net/detail/6145865.html 最近要在系统弹出的数字键盘上的左下角额外添加一个自定制的完成按钮,于是研究了一下系统自带键盘添加自定制按 ...
- ios自定义数字键盘
因为项目又一个提现的功能,textfiled文本框输入需要弹出数字键盘,首先想到的就是设置textfiled的keyboardType为numberPad,此时你会看到如下的效果: 但是很遗憾这样 ...
- vue项目引入FastClick组件解决IOS系统下h5页面中的按钮点击延迟,连续点击无反应的问题
异常描述: ios系统手机中访问h5页面,按钮点击有延迟,连续点击卡顿.无反应. 异常原因: 这要追溯至 2007 年初.苹果公司在发布首款 iPhone 前夕,遇到一个问题:当时的网站都是为大屏幕设 ...
- iOS为数字键盘增加完成按钮
在输入价格的时候,要求弹出的键盘只能有数字和小数点.弹出的键盘没有完成键,想要退出键盘可以点击退出,但是为了更好的用户体验,在键盘上增加UIToolbar. 设置ToolBar: - (UIToolb ...
- 微信JSSDK多图片上传并且解决IOS系统上传一直加载的问题
微信多图片上传必须挨个上传,也就是不能并行,得串行: 那么我们可以定义一个如下所示的上传函数: var serverIds = []; function uploadImages(localImage ...
- 禁止 IOS 系统 数字 变超链 (自动识别为电话号码)
在测试中发现iPad上的Safari总会把长串数字识别为电话号码,文字变成蓝色,点击还会弹出菜单添加到通讯录. 别的地方倒也罢了,如果在用户名中出现数字(手机注册新浪微博的话用户名就是“手机用户xxx ...
- iOS数字键盘自定义按键
UIKeyboardTypeNumberPad 数字键盘自定义按键 最近做一个搜索用户的功能,这里使用了UISearchBar.由于搜索的方式只有手机号码,所以这里的键盘要限制为数字输入,可以这么做: ...
- ios 指定页面禁用第三方键盘,使用系统的键盘
因为项目需要,需要在添加银行卡和提现页面使用数字键盘, 如果用户没有安装第三方键盘是没啥大问题的,但是如果用户手机安装了第三方的键盘的话,有时候会无法调用起第三方的数字键盘,或者第三方键盘样式不符合, ...
- 【笔记】移动端H5数字键盘input type=number的处理(IOS和Android)
在Vue中的项目,基于VUX-UI开发,一个常见的需求: 1.金额输入框 2.弹出数字键盘 3.仅支持输入两位小数,限制最大11位数,不允许0开头 后续:与UI沟通后, 思路调整为限制输入,并减少正则 ...
随机推荐
- DirectWrite 模糊问题——如何正确根据DIP计算实际像素
使用Windows.Graphics.Display.DisplayInformation的时候,一定要根据RawPixelsPerViewPixel计算,而不是RawDpiX或RawDpiY,或许L ...
- Android Automotive开发之一《编译自己的SDK 》 // TOBEDONE
自己动手编译最新Android源码及SDK : http://blog.csdn.net/dd864140130/article/details/51718187官方文档,怎样编译sdk : http ...
- thinkphp3.2.3版本文件目录及作用
下载thinkphp3.2.3版本,解压缩后将文件夹名字改为thinkphp,然后放在www目录下,里面的文件夹和文件的名字和作用如下:(前面有Tab健的表示下一级,thinkphp是根目录) //t ...
- js控制文本框只能输入中文、英文、数字与指定特殊符号.
先在'' 里输入 onkeyup="value=value.replace(/[^\X]/g,'')" 然后在(/[\X]/g,'')里的 X换成你想输入的代码就可以了, 中文u4 ...
- 237. Delete Node in a Linked List
在链接列表中删除节点. 编写一个函数来删除单链表中的一个节点(除了尾部),只提供对该节点的访问..假设链表是1 - > 2 - > 3 > 4,并给出了具有值为3的节点, 链表应该成 ...
- RESTful API URI 设计的一些总结
非常赞的四篇文章: Resource Naming Best Practices for Designing a Pragmatic RESTful API 撰写合格的 REST API JSON 风 ...
- HTML 5 胜出:XHTML2 宣告夭折
自HTML 5 和XHTML 2规范草稿公布以来,一直存在很大的争议.HTML 5是由包括Google.Mirosoft.Mozilla.Opera.Apple在内多家浏览器厂商共同起草的下一代web ...
- [译]Node.js Interview Questions and Answers (2017 Edition)
原文 Node.js Interview Questions for 2017 什么是error-first callback? 如何避免无止境的callback? 什么是Promises? 用什么工 ...
- 【IOS】模仿"抽屉新热榜"动态启动页YFSplashScreen
IOS最好要设置系统默认启动页面,不然进入应用就会突然闪现黑色画面 下图是我们要实现的效果: 总体思路:设置一个系统默认启动页面,在进入didFinishLaunchingWithOptions时, ...
- 思考JavaScript异常如何转为知识库?
线上 js 报错会变成一个邮件,发给前端开发 team,每个人自己认领.解决.其实这是一个不错的选择,也解决了最基本的问题:立即响应,修掉.不过也存在着一个问题,如何避免同样的错误?我的初步想法是这样 ...