gpt4 book ai didi

swift - 代码不适用于关闭键盘

转载 作者:行者123 更新时间:2023-11-28 06:15:23 25 4
gpt4 key购买 nike

我正在尝试创建代码,以便在触摸键盘外部或按下返回按钮时关闭键盘。但这当然不起作用 :D 这就是我在这里问的原因。我怎样才能让它发挥作用?它没有给出错误,但它只是没有响应。

如果有更简单的解决方案,也欢迎提供。

感谢您抽空回答!

这是我的完整代码:

import UIKit

class EntryViewController: UIViewController, UITextFieldDelegate {

@IBOutlet weak var UserEmailAdresInput: UITextField!

@IBOutlet weak var UserPasswordInput: UITextField!

@IBOutlet weak var UserPasswordInputRepeated: UITextField!

@IBOutlet weak var UserSignUp: UIButton!

override func viewDidLoad() {
super.viewDidLoad()

self.UserEmailAdresInput.delegate = self
self.UserPasswordInput.delegate = self
self.UserPasswordInputRepeated.delegate = self


}

override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
@IBAction func SignUp(_ sender: Any) {

let UserEmail = UserEmailAdresInput.text;
let UserPassword = UserPasswordInput.text;
let UserPasswordRepeated = UserPasswordInputRepeated.text;

//Hide Keyboard upon Touch

func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?){
self.view.endEditing(true)
}

//Hide Keyboard upon Return Key
func textFieldShouldReturn(textField: UITextField) -> Bool {
UserEmailAdresInput.resignFirstResponder()
return (true)


}

//Check if fields are filled in correctly

if(UserEmail?.isEmpty == true || UserPassword?.isEmpty == true || UserPasswordRepeated?.isEmpty == true){

displayAlertMessage(userMessage: "Alle velden moeten ingevuld worden");
return;

}

if(UserPassword != UserPasswordRepeated){

displayAlertMessage(userMessage: "Wachtwoorden zijn niet gelijk");
return;
}

//Store Data
UserDefaults.standard.set(UserEmail, forKey: "UserEmail");
UserDefaults.standard.set(UserPassword, forKey: "UserPassword");
UserDefaults.standard.synchronize();

//SignUp Succesfull
var Alert = UIAlertController(title:"Succesvol aangemeld!", message: "Ga naar je email inbox om je aanmelding te voltooien", preferredStyle: UIAlertControllerStyle.alert);

let OkAction = UIAlertAction(title:"Ok", style: UIAlertActionStyle.default, handler: nil);

Alert.addAction(OkAction);
self.present(Alert, animated: true, completion: nil)


}

func displayAlertMessage(userMessage:String){

var Alert = UIAlertController(title:"Alert", message: userMessage, preferredStyle: UIAlertControllerStyle.alert);

let OkAction = UIAlertAction(title:"Ok", style: UIAlertActionStyle.default, handler: nil);

Alert.addAction(OkAction);

self.present(Alert, animated: true, completion: nil)

}

}

最佳答案

下面的 UITextField 委托(delegate)方法将用于在按下键盘上的返回按钮时退出您的文本字段。

func textFieldShouldReturn(textField: UITextField) -> Bool {
if textField == UserEmailAdresInput{
UserEmailAdresInput.resignFirstResponder()
} else if textField == UserPasswordInput{
UserPasswordInput.resignFirstResponder()
} else {
UserPasswordInputRepeated.resignFirstResponder()
}
return true
}

并将您的 touchesBegan 和 textFieldShouldReturn 方法放在 signUp 方法之外。

关于swift - 代码不适用于关闭键盘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45301014/

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