当前位置: 首页 > 知识库问答 >
问题:

使用Swift触摸任意位置,关闭iOS键盘

应俭
2023-03-14

我一直在到处找这个,但似乎找不到。我知道如何消除键盘使用Object-C,但我不知道如何使用Swift?有人知道吗?

共有1个答案

祝宾白
2023-03-14
override func viewDidLoad() {
    super.viewDidLoad()
          
    //Looks for single or multiple taps. 
     let tap = UITapGestureRecognizer(target: self, action: #selector(UIInputViewController.dismissKeyboard))

    //Uncomment the line below if you want the tap not not interfere and cancel other interactions.
    //tap.cancelsTouchesInView = false 

    view.addGestureRecognizer(tap)
}

//Calls this function when the tap is recognized.
@objc func dismissKeyboard() {
    //Causes the view (or one of its embedded text fields) to resign the first responder status.
    view.endEditing(true)
}

如果要在多个UIViewControllers中使用此功能,下面是执行此任务的另一种方法:

// Put this piece of code anywhere you like
extension UIViewController {
    func hideKeyboardWhenTappedAround() {
        let tap = UITapGestureRecognizer(target: self, action: #selector(UIViewController.dismissKeyboard))
        tap.cancelsTouchesInView = false            
        view.addGestureRecognizer(tap)
    }
    
    @objc func dismissKeyboard() {
        view.endEditing(true)
    }
}

现在在每个UIViewController中,你所要做的就是调用这个函数:

override func viewDidLoad() {
    super.viewDidLoad()
    self.hideKeyboardWhenTappedAround() 
}

此函数作为标准函数包含在my repo中,其中包含许多有用的Swift扩展,如此,请查看:https://github.com/goktugyil/EZSwiftExtensions

 类似资料:
  • 问题内容: 我一直在寻找这个,但是我似乎找不到。我知道如何使用来关闭键盘,但是我不知道如何使用?有人知道吗? 问题答案: 如果要多次使用此功能,这是另一种执行此任务的方法: 现在在每个中,您所需要做的就是调用此函数: 此功能作为标准功能包含在我的存储库中,其中包含许多类似这样的有用的Swift扩展,请查看:https : //github.com/goktugyil/EZSwiftExtensio

  • 本文向大家介绍iOS 关闭键盘,包括了iOS 关闭键盘的使用技巧和注意事项,需要的朋友参考一下 示例 迅速 Ctrl +从MainStoryboard中的UItextfield拖动到ViewController类,然后创建一个UITextField出口 之后,再次选择UItextField并在ViewController类中按Ctrl +拖动,但是这次选择“动作”连接,然后在存储上选择“退出时结束

  • 对于jfeinstein10(https://github.com/jfeinstein10/slidingmenu),我可以在应用中的任何地方滑动以滑动打开菜单。 用户可以通过从屏幕左边缘滑动或通过触摸操作栏上的应用图标将导航抽屉带到屏幕上。

  • 问题内容: 这是很常见的事情,例如,如果您在此处单击stackoverflow上的收件箱。我会打电话给那个对话框或任何被打开的 东西 。 现在我知道有两种方法可以解决这个问题, 你创建一个无形的覆盖,但只有用户打开该元素具有更大的zIndex以及您关闭 的事情 上叠加通过点击 点击文档事件,而你检查在点击你是否点击你的事还是境外,在这种情况下,你闭上你 的事 。 无论哪种情况,我都希望使用添加/删

  • 触摸开关可以连接导电的物品,将它变成触摸开关。通过检测四色鳄鱼夹和地线的导通状态,能实现简单有趣的人机交互。 净重量:28.8g 体积:24×48×14mm 参数 触发电阻范围:<24MΩ 夹子大小:35mm 工作电压:DC 5V 抗跌落能力:1.5m 工作温度:-10℃~55℃ 工作湿度:<95% 特点 16种的输入组合 与其他模块丰富的离线互动效果 多样化的触发方式 定制化平口鳄鱼夹,大幅度减

  • 我正在使用LIBGDX开发一款android游戏。 这里,x和y返回设备屏幕的触摸位置,值在0和设备屏幕宽度和高度之间。 有办法吗?我想获得与视口相关的触摸位置。。我用它来保持纵横比http://www.java-gaming.org/index.php?topic=25685.0