xcode swift ios8

xcode - ¿Cómo consigo que la tecla de retorno realice la misma acción que presionar un botón en Swift?



ios8 (5)

Si su objetivo de implementación es iOS 9.0 o posterior, puede conectar el evento “Acción principal activada” de su campo de texto a una acción, como esta:

No pude lograr que la "Acción primaria activada" funcionara como se sugirió. Usé "Editing Did End" y eso funciona por ahora Captura de pantalla de Editing Did End

Quiero saber cómo permite que se realice una acción presionando la tecla de retorno en el teclado del software o tocando un botón UIB.

El botón UI ya está configurado para realizar una IBAction.

¿Cómo puedo permitir que los usuarios presionen la tecla de retorno en el teclado para realizar la misma acción?


ACTUALIZAR

Si su objetivo de implementación es iOS 9.0 o posterior, puede conectar el evento “Acción principal activada” de su campo de texto a una acción, como esta:

ORIGINAL

Haga que su controlador de vista adopte el protocolo UITextFieldDelegate .

Configure el delegado de su campo de texto en su controlador de vista.

Implemente textFieldShouldReturn: para llamar a su acción.


Aquí hay un ejemplo completo, con ambos:

  1. acción del botón para escribir y también para borrar la etiqueta y el texto al presionar el botón repetidamente alterna ambas acciones

  2. regresar al teclado al presionar la tecla, activa la acción y también renuncia al primer respondedor

func MyTextFielAction(textField: UITextField) { //YOUR CODE can perform same action as your UIButton }


Asegúrese de que su clase extienda el protocolo UITextFieldDelegate

SomeViewControllerClass : UIViewController, UITextFieldDelegate

Puede realizar acciones de la siguiente manera:

override func viewDidLoad() { super.viewDidLoad() self.textField.delegate = self } func textFieldShouldReturn(textField: UITextField) -> Bool { //textField code textField.resignFirstResponder() //if desired performAction() return true } func performAction() { //action events }


Swift 4.2:

Otro enfoque para el campo de texto creado mediante programación y no necesita delegado:

class ViewController: UIViewController, UITextFieldDelegate { @IBOutlet weak var textField1: UITextField! @IBOutlet weak var label1: UILabel! var buttonHasBeenPressed = false override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. textField1.delegate = self } @IBAction func buttonGo(_ sender: Any) { performAction() } func textFieldShouldReturn(_ textField: UITextField) -> Bool { textField.resignFirstResponder() performAction() return true } func performAction() { buttonHasBeenPressed = !buttonHasBeenPressed if buttonHasBeenPressed == true { label1.text = textField1.text } else { textField1.text = "" label1.text = "" } } }

Y luego realiza tu acción como a continuación:

MyTextField.addTarget(self, action: #selector(MyTextFielAction) , for: UIControl.Event.primaryActionTriggered)