Что касается ваших комментариев, я считаю, что у вас есть метод делегата для отклонения клавиатуры.
Первая проблема, которую я вижу, это то, что вы просматриваете контроллер, не реализующий протокол делегирования текстового представления, измените его: Class: Protocol
extension FirstPage: UITextViewDelegate {
func textView(_ textView: UITextView, shouldChangeTextIn range: NSRange, replacementText text: String) -> Bool {
if text == "\n" {
textView.resignFirstResponder()
return false
}
return true
}
}
затем установите делегат вашего текстового представления так же, как self
emailText.delegate = self
Также сделайте вашу текстовую переменную представления lazy
(также вы можете назначить ее делегат внутри ленивой переменной инициализации)
lazy var emailText: UITextView = {
let textView = UITextView()
...
textView.delegate = self
return textView
}()
Теперь давайте подумаем о контенте. У вас есть UITextView
для вставки email . Поскольку для вставки электронной почты достаточно одной строки текста, используйте UITextField
вместо своего текстового представления.
Затем вы можете использовать textFieldShouldReturn
метод делегата текстового поля для отмены клавиатуры после нажатия клавиша возврата
func textFieldShouldReturn(textField: UITextField) -> Bool {
textField.resignFirstResponder()
return true
}