gpt4 book ai didi

ios - 在特定字段上关闭键盘

转载 作者:行者123 更新时间:2023-11-28 12:57:52 25 4
gpt4 key购买 nike

我在我的 Swift 应用程序中使用这个库来包含自定义选择器 View 而不是默认 View :https://github.com/kirkbyo/Dropper

我已按预期设置并正常运行库。在我使用此自定义选择器的同一 View 中,我有几个文本字段。当我添加一个函数以在用户点击键盘以外的地方关闭键盘时,该库将停止正常工作,您无法选择下拉列表中的任何项目。

这是我必须关闭键盘的内容:

let tap: UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: "dismissKeyboard")
view.addGestureRecognizer(tap)

func dismissKeyboard() {
view.endEditing(true)
}
  • 如何在不破坏自定义选择器库的情况下让它工作?

  • 我可以将 UITapGestureRecognizer 限制为特定的文本字段吗?

  • 我能否让键盘在用户点击“返回”键时关闭?

最佳答案

首先在 dismissKeyboard 函数中使用 textField.resignFirstResponder 而不是 view.endEditing(true) 。关于库中选择器的问题,请尝试将 UITapGestureRecognizer 添加到整个 View ,如果不起作用,请尝试仅将其添加到下拉 View 。

更新

我下载了这个库,这对我有用,可以隐藏滴管。

func dismissKeyboard(){
if dropper.status != .Hidden {
dropper.hideWithAnimation(0.1)
}

self.txtField.resignFirstResponder()
}

更新 2

问题是 UITapGesture 覆盖了整个 View ,所以我为 UITapGusture 添加了委托(delegate)并添加了一些异常(exception)。

那么这样做:
在你的类中添加 UIGestureRecognizerDelegate,它看起来像这样:

class ViewController: UIViewController, UIGestureRecognizerDelegate

将委托(delegate)添加到您的点击手势

tap.delegate = self

并将其添加到您的扩展程序中

func gestureRecognizer(gestureRecognizer: UIGestureRecognizer, shouldReceiveTouch touch: UITouch) -> Bool {
if touch.view!.isKindOfClass(UIButton) || touch.view!.isKindOfClass(UITableViewCell) || touch.view!.superview!.isKindOfClass(UITableViewCell) {
return false
}
return true
}

你应该可以开始了:)

关于ios - 在特定字段上关闭键盘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34571895/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com