Cambiar la function del button 'Volver' a 'Listo' en swift en UITextView

Me gustaría deshacerme de la function "volver" del keyboard mientras el usuario escribe, por lo que no hay líneas nuevas, por lo que me gustaría que la tecla 'regresar' funcione como 'Listo' para ocultar el keyboard .

Estoy usando una UITextView, que es editable, por lo que el usuario puede escribir su publicación y publicarla en la línea de time principal, pero como tengo celdas fijas, no quiero que el usuario pueda presionar 'return' y su publicación estaría fuera del scope de la línea de time.

Encontré esto que funciona con UITextField, pero no con UITextView:

func textFieldShouldReturn(textField: UITextField!) -> Bool { textField.resignFirstResponder() //if desinetworking return true } 

Así que solo quería saber si hay una manera de hacerlo en una UITextView, o al less para poder ocultar el keyboard si se presiona regresar, en lugar de crear una nueva línea.

Puede establecer el tipo de key de retorno del campo de text:

 textField.returnKeyType = UIReturnKeyType.Done 

Actualización Definitivamente puede usar el mismo enfoque para establecer la key de retorno en "Listo", como se mencionó anteriormente. Sin embargo, UITextView no proporciona una callback cuando el usuario golpea la tecla de retorno. Como solución alternativa, puede intentar manejar el text textView (textView: UITextView, shouldChangeTextInRange range: NSRange, text de reemploop: String) delegar llamada y descartar el keyboard cuando detecta la input de un nuevo carácter de línea:

 func textView(textView: UITextView, shouldChangeTextInRange range: NSRange, replacementText text: String) -> Bool { if (text == "\n") { textView.resignFirstResponder() } return true } 

He probado muchos códigos y, finalmente, esto funcionó para mí en Swift 3.0 Últimas [marzo de 2017]

La class "ViewController" debería haber henetworkingado el "UITextFieldDelegate" para que este código funcione.

 class ViewController: UIViewController,UITextFieldDelegate 

Agregue el campo de text con la label apropiada nuber y este número de label se usa para tomar el control en el campo de text apropiado basado en el número de label incremental asignado a él.

 override func viewDidLoad() { userNameTextField.delegate = self userNameTextField.tag = 0 userNameTextField.returnKeyType = UIReturnKeyType.next passwordTextField.delegate = self passwordTextField.tag = 1 passwordTextField.returnKeyType = UIReturnKeyType.go } 

En el código anterior, el "returnKeyType = UIReturnKeyKeyType.next", donde hará que la tecla de retorno del keyboard se muestre como "Siguiente", también tendrá otras opciones como "Unir / Ir", etc. en function de su aplicación, cambiará los valores.

Este "textFieldShouldReturn" es un método de UITextFieldDelegate controlado y aquí tenemos la siguiente selección de campo basada en el incremento del valor de Tag.

 func textFieldShouldReturn(_ textField: UITextField) -> Bool { if let nextField = textField.superview?.viewWithTag(textField.tag + 1) as? UITextField { nextField.becomeFirstResponder() } else { textField.resignFirstResponder() return true; } return false }