Есть ли способ назначить кнопку для перемещения по текстовым полям - PullRequest
0 голосов
/ 21 октября 2019

Есть 3 текстовых поля. По умолчанию первый будет выбран после запуска программы. Существует следующая кнопка, при нажатии которой будет выбрано следующее текстовое поле. По какой-то причине это сбой. Вылетает в момент нажатия кнопки. Может кто-нибудь объяснить, что я делаю не так

    override func viewDidLoad() {
            super.viewDidLoad()
            //select default
            textfield.becomeFirstResponder()
            }

    //should go to next textfield when pressed
    @IBAction func NextButton()
    {

        // if textfield is selected
        if(textfield.becomeFirstResponder() == true)
        {
            textfield.resignFirstResponder()
            textfieldTwo.becomeFirstResponder()
        }

        if(textfieldTwo.becomeFirstResponder() == true)
        {
            textfieldTwo.resignFirstResponder()
            textfieldThree.becomeFirstResponder()
        }
    }

1 Ответ

0 голосов
/ 21 октября 2019

Не используйте becomeFirstResponder(), чтобы проверить, активно ли текстовое поле, вместо этого используйте isFirstResponder(). Также обратите внимание, что я добавил else if для textfieldTwo.

@IBAction func NextButton()
{
    // if textfield is selected
    if(textfield.isFirstResponder() == true)
    {
        textfield.resignFirstResponder()
        textfieldTwo.becomeFirstResponder()
    }

    else if(textfieldTwo.isFirstResponder() == true)
    {
        textfieldTwo.resignFirstResponder()
        textfieldThree.becomeFirstResponder()
    }
}
...