如何在返回键被击中时隐藏键盘 - Swift

时间:2017-01-08 20:47:45

标签: ios swift keyboard

尝试在点击返回键时隐藏iOS键盘,但是它会停止并给出图像中看到的错误。以下是我使用的代码:

@IBOutlet weak var scoreText: UITextField!

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

enter image description here

3 个答案:

答案 0 :(得分:25)

您的问题是您没有委派textField来使用该方法。首先,您的班级必须包含UITextFieldDelegate协议:

class yourClass: UIViewController, UITextFieldDelegate { ... }

viewDidLoad()方法中,也可以添加:

scoreText.delegate = self

然后你必须改变这个:

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

到此:

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

最终代码:

class yourClass: UIViewController, UITextFieldDelegate {

    @IBOutlet weak var scoreText: UITextField!

    override func viewDidLoad(){
        super.viewDidLoad()
        scoreText.delegate = self
    }

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

如果这不起作用,则问题不在于textFieldShouldReturn()功能。请检查您的插座连接。

答案 1 :(得分:2)

试试这个

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

答案 2 :(得分:1)

在快速4或5中,您可以像这样使用:

  1. 创建一个项目
  2. 添加UITextField并连接到ViewController
  3. 将UITextFieldDelegate实现到ViewController
  4. 初始化UITextField委托
  5. 在ViewController中添加textFieldShouldReturn方法
  6. 这里是完整代码

    class ViewController: UIViewController,UITextFieldDelegate {
    
     //Connect to text field
     @IBOutlet weak var scoreText: UITextField!
    
     override func viewDidLoad() {
       super.viewDidLoad()
    
        //must initialize delegate
        scoreText.delegate = self
      }
    
     //add method
     func textFieldShouldReturn(_ textField: UITextField) -> Bool {
        textField.resignFirstResponder()
        return true
     }  
    
    }