我有一个登录名册,包含 3 个字段和一个登录按钮。我想在键盘上设置一个按钮,当用户结束写入内容时,将 UITextField 跳转到下一个。除此之外,当用户在最后一个字段上输入文本时,登录按钮隐藏在键盘后面!我尝试在属性检查器上选择选项,但我不知道如何使用它。
class ViewControllerAuthentication: UIViewController {
@IBOutlet weak var btEntrar: UIButton!
@IBOutlet weak var textPassword: UITextField!
@IBOutlet weak var textEmail: UITextField!
@IBOutlet weak var textURL: UITextField!
let alert = Alerta()
var url : String?
var email : String?
var password : String?
override func viewDidLoad() {
self.btEntrar.addTarget(self, action: #selector(clickEntrar), for: .touchUpInside)
}
@objc func clickEntrar(_ sender : UIButton) {
// Do anything
}
}
最佳答案
您可以使用 UITextFieldDelegate
来做到这一点,例如...
class ViewControllerAuthentication: UIViewController, UITextFieldDelegate {
@IBOutlet weak var textPassword: UITextField!
@IBOutlet weak var textEmail: UITextField!
@IBOutlet weak var textURL: UITextField!
override func viewDidLoad() {
textPassword.delegate = self
textEmail.delegate = self
textURL.delegate = self
textURL.returnKeyType = .next
textEmail.returnKeyType = .next
textPassword.returnKeyType = .default // or .done
}
public func textFieldShouldReturn(_ textField: UITextField) -> Bool {
switch textField {
case textURL:
textEmail.becomeFirstResponder()
case textEmail:
textPassword.becomeFirstResponder()
case textPassword:
textField.resignFirstResponder()
default:
textField.resignFirstResponder()
}
return true
}
}
我建议 IQKeyboardManager ,如果您不想手动处理每个字段。
关于ios - 如何在Swift4上实现UITextField的 "Next"和 "Done"功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49927024/