I'm building an app using MessageKit.
I added an InputBarItem to the input bar, but it doesn't appear when the view first appears. Only after I pressed "send", the item shows up.
Below is part of the ChatViewController. Any idea why this happens?
Thank you!
class ChatViewController: MessagesViewController {
....
override func viewDidLoad() {
super.viewDidLoad()
view.backgroundColor = .white
...
messageInputBar.delegate = self
setupConstraints()
}
}
extension ChatViewController: MessagesDataSource {
...
}
// MARK: - MessageInputBarDelegate
extension ChatViewController: InputBarAccessoryViewDelegate {
@objc
func inputBar(_ inputBar: InputBarAccessoryView, didPressSendButtonWith text: String) {
processInputBar(messageInputBar)
}
private func makeButton(named: String) -> InputBarButtonItem {
return InputBarButtonItem()
.configure {
$0.spacing = .fixed(10)
$0.image = UIImage(systemName: named)?.withRenderingMode(.alwaysTemplate)
$0.setSize(CGSize(width: 25, height: 25), animated: false)
$0.tintColor = .blue
}
}
func processInputBar(_ inputBar: InputBarAccessoryView) {
let components = inputBar.inputTextView.components
inputBar.inputTextView.text = String()
let items = [
makeButton(named: "plus")
]
inputBar.setLeftStackViewWidthConstant(to: 36, animated: false)
inputBar.setStackViewItems(items, forStack: .left, animated: false)
}
}