微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

swift开发笔记12-点击屏幕 收回键盘

有时界面使用tableview布局, 其中有文本输入框的单元格,当键盘弹出后, 收回键盘很简单就是:

workcontent.resignFirstResponder()


通常是textfield和textview点击键盘return(换行)键时收回,并且也能点击表格空白处收回

1、 点击键盘return键返回需要viewcontroller实现委托

class ViewController: UIViewController,UITextFieldDelegate,UITextViewDelegate {
//此处省略引用声明
//通过委托来实现放弃第一响应者
    //UITextField Delegate Method
    func textFieldShouldReturn(textField: UITextField) -> Bool {
        textField.resignFirstResponder()
        return true
    }
    
    //通过委托来实现放弃第一响应者
    //UITextView Delegate  Method
    func textView(textView: UITextView,shouldChangeTextInRange range: NSRange,replacementText text: String) -> Bool {
        if (text == "\n") {
            textView.resignFirstResponder()
            return false
        }
        return true
    }


}

但是按键到return无法让键盘消失,这是因为你的文本框没有添加委托。

添加委托的方法,右键文本框,把outlets下的+拉到file's owner(一个透视的正方体)上就可以了。

或者在加载事件中添加txtLength.delegate=self;

添加委托的操作 来自:http://blog.csdn.net/peyfey/article/details/42423617)

2、点击空白收回键盘

点击UITextField以外的区域,实际是点击了tableView,tableView捕获点击事件,可它不会传递该事件。怎么办呢?

网上有很多方法了,我找到一种简单可用的办法:addGestureRecognizer

class AddDayReportViewController: UITableViewController {

        
    @IBOutlet weak var workcontent: UITextView!
    
    override func viewDidLoad() {
        super.viewDidLoad()
       
        //注册点击事件
        view.addGestureRecognizer(UITapGestureRecognizer(target: self,action: "handleTap:"))
    }

    func handleTap(sender: UITapGestureRecognizer) {
        if sender.state == .Ended {
           print("收回键盘")
          workcontent.resignFirstResponder()
        }
        sender.cancelstouchesInView = false
    }

}

亲测可用!!

UIGestureRecognizer类用于手势识别,它的子类有主要有六个分别是:

UITapGestureRecognizer(轻击一下)

UIPinchGestureRecognizer(两指控制的缩放)

UIRotationGestureRecognizer(旋转)

UISwipeGestureRecognizer(滑动,快速移动)

UIPanGestureRecognizer(拖移,慢慢移动)

UILongPressGestureRecognizer(长按)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐