gpt4 book ai didi

swift - 关闭 UITextField 键盘?

转载 作者:搜寻专家 更新时间:2023-11-01 07:22:19 24 4
gpt4 key购买 nike

我有多个文本框

@IBOutlet var emailLogin: UITextField!
@IBOutlet var passLogin: UITextField!
@IBOutlet var emailSignUp: UITextField!
@IBOutlet var passSignUp: UITextField!

到目前为止,这些并不是真正需要的,因为我是通过点击屏幕上的任意位置来关闭它的,但是我也希望它在我按下返回键时关闭。

override func viewDidLoad() {
super.viewDidLoad()
self.emailLogin.delegate = self
let tap: UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(LoginViewController.dismissKeyboard))
view.addGestureRecognizer(tap)
}

第一个问题:当我只需要关闭一个 View 时,我会像这样设置委托(delegate),但是当我有多个 View 需要在返回键时关闭时,我该如何处理呢?

此外,还有两个独立的 View ,但都使用相同的类。这对我正在尝试做的事情有问题吗?

从这里开始

func dismissKeyboard() {

view.endEditing(true)
}

func textFieldShouldReturn(textField: UITextField) -> Bool {
textField.resignFirstResponder()
return true
}

这会关闭键盘,但仅限于我设置为 self 的文本字段。

感谢任何信息!

编辑: I could be doing this wrong

最佳答案

将您的代码更改为以下内容,它应该可以工作:

@IBOutlet var emailLogin: UITextField?
@IBOutlet var passLogin: UITextField?
@IBOutlet var emailSignUp: UITextField?
@IBOutlet var passSignUp: UITextField?

emailLogin?.delegate = self
passLogin?.delegate = self
emailSignUp?.delegate = self
passSignUp?.delegate = self

当您的 LoginViewController 加载时,来自其他类的 IBOutlets 未初始化,因此最终解包 nil 对象,这在 swift 。 (您应该能够在 Xcode 的控制台输出中看到这一点。)使用可选变量将防止这种情况发生。

关于swift - 关闭 UITextField 键盘?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38165463/

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