// // KeyboardReadable.swift // Chat // // Created by Sergey Tarasov on 25.07.2022. // import Combine import UIKit /// Publisher to read keyboard changes. protocol KeyboardReadable { var keyboardPublisher: AnyPublisher { get } } extension KeyboardReadable { var keyboardPublisher: AnyPublisher { Publishers.Merge( NotificationCenter.default .publisher(for: UIResponder.keyboardWillShowNotification) .map { _ in true }, NotificationCenter.default .publisher(for: UIResponder.keyboardWillHideNotification) .map { _ in false } ) .eraseToAnyPublisher() } }