mirror of
https://github.com/appwrite/sdk-for-apple.git
synced 2026-04-07 19:17:50 +00:00
34 lines
883 B
Swift
34 lines
883 B
Swift
//
|
|
// Created by Jake Barnby on 4/08/21.
|
|
//
|
|
|
|
import SwiftUI
|
|
import Combine
|
|
|
|
final class Keyboard: ObservableObject {
|
|
|
|
@Published var height: CGFloat = 0
|
|
|
|
var cancellables: Set<AnyCancellable> = []
|
|
|
|
init() {
|
|
NotificationCenter.default.publisher(for: UIResponder.keyboardWillChangeFrameNotification)
|
|
.compactMap({ (notification) -> CGFloat? in
|
|
guard let frame = notification.userInfo?[UIResponder.keyboardFrameEndUserInfoKey] as? CGRect else {
|
|
return nil
|
|
}
|
|
if frame.origin.y == UIScreen.main.bounds.height {
|
|
return 0
|
|
}
|
|
return frame.size.height
|
|
})
|
|
.assign(to: \.height, on: self)
|
|
.store(in: &cancellables)
|
|
}
|
|
|
|
deinit {
|
|
cancellables.forEach {
|
|
$0.cancel()
|
|
}
|
|
}
|
|
} |