【问题标题】:View <(null):0x0> does not conform to UITextInput protocol when tapping Return button on keyboard点击键盘上的 Return 按钮时查看 <(null):0x0> 不符合 UITextInput 协议
【发布时间】:2020-12-08 07:09:29
【问题描述】:

在键盘(真实设备)上点击返回时,控制台中会弹出此错误。一切都按原样执行。键盘隐藏,但此错误继续显示在控制台中。

import UIKit

class ViewController: UIViewController, UITextFieldDelegate {

       lazy var nameTextField: UITextField = {
         let textField = UITextField()
         textField.placeholder = "Name:"
         textField.delegate = self
         return textField
        }()
             
        lazy var surnameTextField: UITextField = {
          let textField = UITextField()
          textField.placeholder = "Surname:"
          textField.delegate = self
          return textField
         }()
       
         override func viewDidLoad() {
              super.viewDidLoad()
               
              view.addSubview(nameTextField)
              view.addSubview(surnameTextField)

         }

    func textFieldShouldReturn(_ textField: UITextField) -> Bool {
       view.endEditing(true)
       return true
    }


 }

【问题讨论】:

  • 尝试添加 self.view.endEditing(true)
  • 谢谢,还是一样。一开始好像修好了。但控制台仍然给出该消息。

标签: ios swift uitextfield


【解决方案1】:

如果你返回 true,你需要辞职。

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

【讨论】:

  • 我用 textField.resignFirstResponder 替换了 self.view.endEditing(true)。仍然有警告/错误消息。就像我在上面提到的那样,代码执行得很好,并且完全符合它的预期......无论是使用 endEditing 还是 resignFirstResponder。
猜你喜欢
  • 1970-01-01
  • 2014-09-18
  • 1970-01-01
  • 2012-03-08
  • 1970-01-01
  • 2011-05-10
  • 1970-01-01
  • 2018-07-24
  • 2011-05-12
相关资源
最近更新 更多