首页 > 移动平台 > 详细

IOS Swift UITableViewcontroller实现点击空白处隐藏键盘

时间:2017-01-18 11:02:07      阅读:380      评论:0      收藏:0      [点我收藏+]

在ios开发中,为了方便,我们经常使用UITableViewcontroller,比如搜索界面为了方便可能更多的使用UITableViewcontroller,那么问题就来了,当我点击搜索框的时候会弹出一个键盘,我们需要点击空白处就隐藏键盘,这时候大家可能想到的事在UITableViewcontroller中重写touchesBegan方法,但是发现这个方法并没有响应,我猜想可能是被屏蔽了,那我们该怎么做呢?下面我说一下实现思路:

1.自定义一个类继承UITableView然后重新touchesBegan然后写一个代理提供一个隐藏键盘的方法,代码如下: 

import UIKit

//搜索时点击空白处隐藏键盘

protocol SearchTableViewDelegate { 

    func hideKeyBoard()

 }

class SearchTableView: UITableView {

 

    var mDelegate:SearchTableViewDelegate!

    required init?(coder aDecoder: NSCoder) {

     

        super.init(coder: aDecoder)

    }

    

    override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {

      

        if mDelegate != nil{

        mDelegate.hideKeyBoard()

        }

    }

}

2.调用

注意:在调用之前一定要将UITableViewController中的UITableView设置成自己定义的那个UITableView否则不会有效果切记

import UIKit

//搜索

class SearchTableViewController: UITableViewController,SearchTableViewDelegate{

 

    @IBOutlet var mSearchTableView: SearchTableView!

    var searchBar:UISearchBar!

    override func viewDidLoad() {

        super.viewDidLoad()

        mSearchTableView.mDelegate=self

        

        addSearchBar()

       

    }

 

    //在导航栏添加搜索框

    func addSearchBar()  {

         self.searchBar = UISearchBar(frame:CGRect(x:0,y:0,width:self.view.bounds.width,height:44))

         self.navigationItem.titleView=searchBar

    }

    

    //点击屏幕空白处退出键盘

    

    func hideKeyBoard() {

      

        self.searchBar.resignFirstResponder()

    }

IOS Swift UITableViewcontroller实现点击空白处隐藏键盘

原文:http://www.cnblogs.com/zzjbk/p/6295771.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!