Swift

Enviar un mensaje

En el paso anterior aprendiste sobre conversaciones y eventos, al enviar un mensaje se crea un nuevo evento y se envía a través de la conversación.

Para enviar un mensaje, añada la siguiente función a ChatViewController.swift:

class ChatViewController: UIViewController {
    ...
    func send(message: String) {
        inputField.isEnabled = false
        conversation?.sendMessage(NXMMessage(text: message), completionHandler: { [weak self] (error) in
            DispatchQueue.main.async { [weak self] in
                self?.inputField.isEnabled = true
            }
        })
    }
}

Para obtener el texto del inputField es necesario añadir otra función proporcionada por el UITextFieldDelegate. Añada la siguiente función a UITextFieldDelegate extensión:

extension ChatViewController: UITextFieldDelegate {
    ...
    func textFieldShouldReturn(_ textField: UITextField) -> Bool {
        if let text = textField.text {
            send(message: text)
        }
        textField.text = ""
        textField.resignFirstResponder()
        return true
    }
}

Esta función delegada se llama cuando se pulsa el botón de retorno del teclado.

Construir y ejecutar

Cmd + R para construir y ejecutar de nuevo. Ya tienes una aplicación de chat en funcionamiento. Para chatear simultáneamente puedes ejecutar la aplicación en dos simuladores/dispositivos diferentes:

Sent messages