From 29beea1868921bc9e9ecb900e532fa4e6ec46adb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ra=C3=BAl=20Olmedo?= Date: Fri, 24 May 2024 17:08:47 +0200 Subject: [PATCH] Added listener for keyboard input mode changes (e.g. emoji keyboard) --- .../MessagesViewController+Keyboard.swift | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/Sources/Controllers/MessagesViewController+Keyboard.swift b/Sources/Controllers/MessagesViewController+Keyboard.swift index be372331..7cb07c3d 100644 --- a/Sources/Controllers/MessagesViewController+Keyboard.swift +++ b/Sources/Controllers/MessagesViewController+Keyboard.swift @@ -69,6 +69,20 @@ extension MessagesViewController { } .store(in: &disposeBag) + NotificationCenter.default + .publisher(for: UITextInputMode.currentInputModeDidChangeNotification) + .subscribe(on: DispatchQueue.global()) + .receive(on: DispatchQueue.main) + .removeDuplicates() + .sink { [weak self] _ in + self?.updateMessageCollectionViewBottomInset() + + if !(self?.maintainPositionOnInputBarHeightChanged ?? false) { + self?.messagesCollectionView.scrollToLastItem() + } + } + .store(in: &disposeBag) + /// Observe frame change of the input bar container to update collectioView bottom inset inputContainerView.publisher(for: \.center) .receive(on: DispatchQueue.main)