次のように私は私のコードで3つのテキストフィールドに店舗を持っている:UITextFieldのbecomeFirstReponderが偽
@IBOutlet var oldPasswordTextField: UITextField! { didSet { oldPasswordTextField.delegate = self } }
@IBOutlet var newPasswordTextField: UITextField! { didSet { newPasswordTextField.delegate = self } }
@IBOutlet var confirmPasswordTextField: UITextField! { didSet { confirmPasswordTextField.delegate = self } }
私textFieldShouldReturnのデリゲートメソッドで、私はリターンのクリックで最初の応答者として次のテキストフィールドを作りたいです
func textFieldShouldReturn(textField: UITextField) -> Bool { //delegate method
textField.resignFirstResponder()
if textField == oldPasswordTextField
{
newPasswordTextField.becomeFirstResponder()
}
else if textField == newPasswordTextField
{
confirmPasswordTextField.becomeFirstResponder()
}
else
{
saveButtonTapped()
}
return true
}
しかし、それは機能しませんでした。そこで私は何がうまくいかないかを調べようとしました。私は 私のコンソール上 「新パスワードフィールドファーストレスポンダになることができません」「テキストフィールドは、最初の応答者が辞任カント」を取得
func textFieldShouldReturn(textField: UITextField) -> Bool { //delegate method
if textField.canResignFirstResponder()
{
print("textField can resign first responder")
if textField.resignFirstResponder() == true
{
print("textField resigned first responder")
}
else
{
print("textField didnt resign first responder")
}
}
else
{
print("textField cant resign first responder")
}
if textField == oldPasswordTextField
{
if newPasswordTextField.canBecomeFirstResponder() == true
{
if newPasswordTextField.becomeFirstResponder() == true
{
print("newPassword field has become first responder")
}
else
{
print("newPassword field cannot become first responder")
}
}
}
else if textField == newPasswordTextField
{
confirmPasswordTextField.becomeFirstResponder()
}
else
{
saveButtonTapped()
}
return true
}
そして残業:だから私はこれを試してみました。私は何がここで間違っているのか分からない。 canResignFirstResponder()メソッドとbecomeFirstResponder()メソッドがfalseを返すのはなぜですか?どんな助け?
何も間違っていると思われ、同じコードが問題なく動作しています。 – Mathews
私のコードの間違いは、私の 'textFieldShouldEndEditing'メソッドがfalseを返すということでした。なぜ私のresignFirstResponderメソッドがfalseを返していて、うまくいかなかったのです。だから、私はその復帰を真実にして、それはうまくいく。 :) – Priyanka