IOS TextField弹出键盘挡住输入框的问题


最近碰到TextField弹出的键盘会挡住输入框的问题, 这样对输入很有影响, 所以我在网上搜索了解决方案, 然后在这里做个总结吧 :

两种解决方案:

1. 上移TextField.frame的位置, 这个实现原理就是 当进入编辑状态时, 获取TextField的偏移位置, 然后相应上移相应距离, 待结束编辑后移到原来位置, 

 具体实现可以参考http://blog.csdn.net/wmqi10/article/details/8297316;

2. 用一个开源的控件EMKeyboardBarTextField, 

            实现功能:就是把你要操作的TextField直接移动到紧挨着弹出键盘上方的Toolbar上, 但是我的理解是不能直接add到Toolbar上的, 他是通过UIView来定位覆盖上的, 因为我试过直接加是不能成功的;

            实现原理:主要是监听系统UIKeyboardWillShowNotification和UIKeyboardWillHideNotification两个通知来控制对控件的移动和移除, 具体可以研究下代码;

        PS: 此控件在中文输入的时候会出现问题, 如果大家是有中文输入情况的建议使用方案一, 第二种方案在英文和数字等可以用; 

还有一点:使用第二种方案时, 如果键盘弹出后, 直接跳转到另一个page这时候键盘是不会消失的, 你必须在当前页面的ViewWillDisappear方法中postNotification键盘隐藏的通知, 并让textField失去焦点;

控件开源地址: https://github.com/erwinmaza/EMKeyboardBarTextField


希望能帮助到大家, 如果有不对的地方望大家指正一起探讨.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值