32 lines
742 B
Swift
32 lines
742 B
Swift
//
|
|
// KeyboardVisible.swift
|
|
// damus
|
|
//
|
|
// Created by William Casarin on 2023-05-05.
|
|
//
|
|
|
|
import Foundation
|
|
import Combine
|
|
import UIKit
|
|
|
|
|
|
/// Publisher to read keyboard changes.
|
|
protocol KeyboardReadable {
|
|
var keyboardPublisher: AnyPublisher<Bool, Never> { get }
|
|
}
|
|
|
|
extension KeyboardReadable {
|
|
var keyboardPublisher: AnyPublisher<Bool, Never> {
|
|
Publishers.Merge(
|
|
NotificationCenter.default
|
|
.publisher(for: UIResponder.keyboardWillShowNotification)
|
|
.map { _ in true },
|
|
|
|
NotificationCenter.default
|
|
.publisher(for: UIResponder.keyboardWillHideNotification)
|
|
.map { _ in false }
|
|
)
|
|
.eraseToAnyPublisher()
|
|
}
|
|
}
|