• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

IOSSwiftUITableViewcontroller实现点击空白处隐藏键盘

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

在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()

    }


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Swift导航栏设置发布时间:2022-07-13
下一篇:
Swift3.0元组(tuples)发布时间:2022-07-13
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap