2017-01-02 70 views
1

我做的一切,從一個textField到另一個從鍵盤IOS下一步按鈕時,點擊應用更改焦點焦點更改爲另一個,但它不工作。的textFieldShouldReturn不工作從一個文本框在迅速3

我爲每個textField授人以ViewController從佈局和代碼。 enter image description here

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 


} 

它是什麼錯在這種情況下?

+0

是textFieldShouldReturn打電話? –

+0

應該在哪裏調用? –

+0

我在問這個方法是否在調用? textFieldShouldReturn –

回答

0

我已經按照您的要求

嘗試使用更新它:

func textFieldShouldReturn(textfield: UITextField!) -> Bool 
{ 
    if (textfield == self.usernameTextField) { 
     self.passwordTextField.becomeFirstResponder() 
    } 
    else if (textfield == self.passwordTextField) { 
     textfield.resignFirstResponder() 
    } 
    return true 
} 

keyboard被駁回由於致電resignFirstResponder。它與textFieldShouldReturn的返回值沒有任何關係。這就是爲什麼需要寫滿意的條件。

+0

它不會爲OP工作,因爲OP與Swift 3一起工作,這是'textFieldShouldReturn'沒有被調用的OP的原因。 –

+0

什麼是OP! 我試過你的答案,它不工作 –

+0

我不知道... :) –

0

如果textFieldShouldReturn獲取調用,然後你必須這樣寫:

if (textfield == self.usernameTextField) 
{ 
    self. passwordTextField.becomeFirstResponder() 
} 
2

您與斯威夫特3和的UITextFieldDelegate方法簽名的工作就是變化,所以你需要通過_作爲第一個參數標籤。所以你的方法textFieldShouldReturn(_:)應該是這樣的。

func textFieldShouldReturn(_ textField: UITextField) -> Bool { 
    if (textfield == self.usernameTextField) { 
     self.passwordTextField.becomeFirstResponder() 
    } 
    else { 
     textfield.resignFirstResponder() 
    } 
    return true 
} 
+0

當其他條件會執行? –

+0

Ohk ..但他只有兩個文本框 –

+0

@DheerajD現在它的工作方式OP想 –

0
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 
} 

}

+0

我試過它是一樣的不工作 –