// // MessageInputView.swift // Juick // // Created by Vitaly Takmazov on 13.05.2023. // Copyright © 2023 com.juick. All rights reserved. // import UIKit @objc protocol MessageInputDelegate { @objc func textSent(_ text: String) } @objc class MessageInputView: UIVisualEffectView, UITextViewDelegate { @IBOutlet weak var bottomConstraint: NSLayoutConstraint! @IBOutlet weak var textHeightConstraint: NSLayoutConstraint! @IBOutlet weak var topMarginConstraint: NSLayoutConstraint! @IBOutlet weak var textView: UITextView! @IBOutlet weak var sendButton: UIButton! @IBAction func sendPressed(_ sender: Any) { self.delegate?.textSent(self.textView.text) self.textView.text = nil } @objc var delegate: MessageInputDelegate? func textSize() -> CGSize { let size = CGSizeMake(self.textView.bounds.size.width, CGFloat(Float.greatestFiniteMagnitude)) return self.textView.sizeThatFits(size) } override var intrinsicContentSize: CGSize { var viewSize = self.textSize() viewSize.height = viewSize.height + self.bottomConstraint.constant + self.topMarginConstraint.constant return viewSize } func textViewDidChange(_ textView: UITextView) { if (self.textSize().height != self.textHeightConstraint.constant) { self.textHeightConstraint.constant = self.textSize().height layoutIfNeeded() } self.sendButton.isEnabled = self.textView.text.count > 0 } }