UITextField не уволит - PullRequest
0 голосов
/ 16 мая 2018

В настоящее время я делаю приложение, которое включает в себя UITextFields, и они работают должным образом, но когда я недавно отправился тестировать свое приложение, я заметил, что клавиатура не закрывается после нажатия на UITextField.Раньше он действовал как обычное увольнение, когда я щелкал или нажимал кнопку возврата, но теперь я не могу ничего сделать, чтобы его уволить?

Вот мой текущий код ViewController:

import UIKit

class CreateNewBudgetVC: UIViewController {
    @IBOutlet weak var grossIncomeVal: UITextField!
    @IBOutlet weak var locationVal: UITextField!
    @IBOutlet weak var federalExptVal: UITextField!
    @IBOutlet weak var stateExptVal: UITextField!
    @IBOutlet weak var deductionsList: UITableView!

    @IBAction func cancelPressed(_ sender: Any) {
        performSegue(withIdentifier: "CancelSegue", sender: self)
    }

    @IBAction func generateBudgetPressed(_ sender: Any) {
        let budget = Budget(grossIncome: Int(grossIncomeVal.text!)!)
        performSegue(withIdentifier: "GenerateSegue", sender: budget)
    }

    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
        if let budget = sender as? Budget, let destination = segue.destination as? BudgetVC {
            destination.budget = budget
        }
    }
}

1 Ответ

0 голосов
/ 16 мая 2018

просто используйте

self.view.endEditing(true)

В описанных выше методах действий, где вы хотите отменить клавиатуру.

, например,

    @IBAction func cancelPressed(_ sender: Any) {
        self.view.endEditing(true)
        performSegue(withIdentifier: "CancelSegue", sender: self)
    }

и, если хотите,чтобы вернуть клавиатуру в return tap клавиатуры, используйте эту

class ViewController: UIViewController,UITextFieldDelegate

и реализуйте метод делегата

func textFieldShouldReturn(_ textField: UITextField) -> Bool {   //delegate method
   textField.resignFirstResponder()
   return true
}

, но не забудьте назначить delegate to textfield

yourTextField.delegate = self in `viewDidLoad`

и если вы хотите отклонить клавиатуру при постукивании снаружи, просто назначьте жесту касания для вашего вида следующим образом:

В ViewDidload

let tapGesture = UITapGestureRecognizer(target: self, action: #selector(self.dismissKeyboard (_:)))
self.view.addGestureRecognizer(tapGesture)

реализуйте сбросфункция

func dismissKeyboard (_ sender: UITapGestureRecognizer) {
self.view.endEditing(true)
}
...