[英]The textFieldShouldReturn is not working to change focus from one textfield to another in swift 3
當我從IOS中的鍵盤上單擊下一個按鈕時,我做了一切工作來將更改焦點從一個textField
應用於另一個textField
字段,但是它不起作用。
我將每個textField
的委托從布局和代碼傳遞給ViewController
。
class ViewController: UIViewController, UITextFieldDelegate {
@IBOutlet weak var usernameTextField: UITextField!
@IBOutlet weak var passwordTextField: UITextField!
override func viewDidLoad() {
super.viewDidLoad()
usernameTextField.delegate = self
passwordTextField.delegate = self
}
func textFieldShouldReturn(textfield: UITextField!) -> Bool
{
textfield.resignFirstResponder()
if (textfield == self.usernameTextField) {
self.usernameTextField.becomeFirstResponder()
}
else if (textfield == self.passwordTextField) {
self.passwordTextField.becomeFirstResponder()
}
return true
}
在這種情況下怎么了?
您正在使用Swift 3,並且UITextFieldDelegate
方法的簽名已更改,因此您需要傳遞_
作為第一個參數標簽。 因此,您的方法textFieldShouldReturn(_:)
應該像這樣。
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
if (textfield == self.usernameTextField) {
self.passwordTextField.becomeFirstResponder()
}
else {
textfield.resignFirstResponder()
}
return true
}
如果要調用textFieldShouldReturn,則必須這樣寫:
if (textfield == self.usernameTextField)
{
self. passwordTextField.becomeFirstResponder()
}
我已經根據您的要求進行了更新
嘗試使用:
func textFieldShouldReturn(textfield: UITextField!) -> Bool
{
if (textfield == self.usernameTextField) {
self.passwordTextField.becomeFirstResponder()
}
else if (textfield == self.passwordTextField) {
textfield.resignFirstResponder()
}
return true
}
由於調用resignFirstResponder
, keyboard
被關閉。 它與textFieldShouldReturn
的返回值textFieldShouldReturn
。 這就是為什么需要在令人滿意的條件下寫作。
Try this...
class ViewController: UIViewController, UITextFieldDelegate {
var usernameTextField: UITextField!
var passwordTextField: UITextField!
override func viewDidLoad() {
super.viewDidLoad()
usernameTextField.delegate = self
passwordTextField.delegate = self
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
func textFieldShouldReturn(textfield: UITextField!) -> Bool
{
if (textfield == self.usernameTextField) {
self.usernameTextField.becomeFirstResponder()
}
else if (textfield == self.passwordTextField) {
self.passwordTextField.resignFirstResponder()
}
return true
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.