ios键盘控制 By Swift

ios键盘控制 By Swift


  • 协议控制键盘消失
  • 输入框事件控制键盘消失
  • 将view改成UIcontrol触发键盘消失
  • 在输入框下添加Button来点击触发键盘消失
  • 自定义UIView或者子类来获取触摸范围控制键盘隐藏


    1.协议控制键盘消失
    以UItextField为例

  • 当UITextField处于first responder状态,用户点击UITextField可以触发键盘出现
  • 通过协议取消键盘通常做法是继承UITextFieldDelegate,注意: 我们使用协议之后一定不要忘记遵守协议,例如我们定义了一个someTextField , someTextField.delegate = self。
  • 实现的方法,在方法textFieldShouldReturn(textField: UITextField)->Bool实现的代码。
    someTextField.resignFirstResponder()
  • 在弹出的键盘上按键盘右下角的按钮后,就可以使键盘消失,一般这个按钮为完成,搜索等

    2.输入框事件控制键盘消失
    可以给someTextField添加事件
    someTextField.addTarget(self, action: "CancelKey", forControlEvents: UIControlEvents.EditingDidEndOnExit)
    故事版可以直接设置UIText field的事件为 Did End On Exit
    关于action(CancelKey)
    我们必须要实现这个方法,可以只是定义一个空方法,但是不能不能不写,否则会导致程序崩溃。 func Cancelkey(){}
    3.将view改成UIcontrol触发键盘消失
    故事版上我们可以将viewController的默认view改成UIcontrol类型,然后添加事件例如CancelAction
    @IBAction func CancelAction(sender: AnyObject){
    someTextField.resignFirstResponder()
    }

    4.在输入框下添加Button来点击触发键盘消失
    这个跟上一个有点类似,我们添加一个button按钮用来取消键盘,可以添加到self.view上,然后我们写一个触发事件,类似于上一个的方法
    5.自定义UIView或者子类来获取触摸范围控制键盘隐藏
    我们定义一个view或者view的子类,重写方法
    pointInside(point: CGPoint, withEvent event: UIEvent?) -> Bool/// 根据手指点击的位置是否在我们输入框上,如果不是的,我们取消弹出的键盘,否者我们不做处理
    该方法实现,需要将输入的控件添加到自定义的view及子类上,由于要实现以下的方法。当然你也可以通过直接传递textfield到该类中,好处是可以不需要将输入控件直接添加到自定义view上,但是这样使得代码耦合度较高,不推荐。
    func didAddSubview(subview: UIView){}///在该方法中获取textField来控制键盘的出现和消失
    demo地址

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值