KeyboardObserver.swift 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. //
  2. // KeyboardObserver.swift
  3. // Toaster
  4. //
  5. // Created by SeongHo Hong on 28/08/2019.
  6. // Copyright © 2019 Suyeol Jeon. All rights reserved.
  7. //
  8. import UIKit
  9. final class KeyboardObserver {
  10. static let shared = KeyboardObserver()
  11. private(set) var didKeyboardShow: Bool = false
  12. init() {
  13. #if swift(>=4.2)
  14. let keyboardWillShowName = UIWindow.keyboardWillShowNotification
  15. let keyboardDidHideName = UIWindow.keyboardDidHideNotification
  16. #else
  17. let keyboardWillShowName = NSNotification.Name.UIKeyboardWillShow
  18. let keyboardDidHideName = NSNotification.Name.UIKeyboardDidHide
  19. #endif
  20. NotificationCenter.default.addObserver(
  21. self,
  22. selector: #selector(keyboardWillShow),
  23. name: keyboardWillShowName,
  24. object: nil
  25. )
  26. NotificationCenter.default.addObserver(
  27. self,
  28. selector: #selector(keyboardDidHide),
  29. name: keyboardDidHideName,
  30. object: nil
  31. )
  32. }
  33. @objc private func keyboardWillShow() {
  34. didKeyboardShow = true
  35. }
  36. @objc private func keyboardDidHide() {
  37. didKeyboardShow = false
  38. }
  39. }