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


    在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,self.view.bounds.width,height:44))

             self.navigationItem.titleView=searchBar

        }

        

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

        

        func hideKeyBoard() {

          

            self.searchBar.resignFirstResponder()

        }

  • 相关阅读:
    实验一 密码引擎4国䀄算法交叉测试(选做)
    实验一密码引擎加密API实现与测试
    kettley引入jar包
    Novice学Pytest(2)assert断言
    Novice学Pytest(13)重复执行用例插件pytestrepeat的详细使用
    Novice学Pytest(6)conftest.py的详细讲解
    Novice学Pytest(7)skip和skipif跳过用例
    Novice学Pytest(8)使用自定义标记mark
    Novice学Pytest(12)测试结果生成HTML报告插件pytesthtml的详细使用
    Novice学Pytest(11)失败重跑插件pytestrerunfailures的详细使用
  • 原文地址:https://www.cnblogs.com/zzjbk/p/6295771.html
Copyright © 2020-2023  润新知