Search code examples
iosswiftxcodeuitextviewimessage-extension

textView() method not being called in iMessage extension


My iMessage extension has a UITextView that needs to resign its FirstResponder when the user hits the return key. But I can't get the method used to trigger this to fire.

import UIKit
import Messages

class MessagesViewController: MSMessagesAppViewController, UITextFieldDelegate, UITextViewDelegate {

    @IBOutlet weak var TextArea: UITextView!

    override func viewDidLoad() {
        super.viewDidLoad()

        self.TextArea.delegate = self
        self.KeyField.delegate = self
    }

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

What am I doing wrong?


Solution

  • Use swift updated UITextViewDelegate method.

    func textView(_ textView: UITextView, shouldChangeTextIn range: NSRange, replacementText text: String) -> Bool {
    }
    

    Hope this helps