RxKeyboard

Swift CocoaPods Build Status Carthage compatible

RxKeyboard 提供了一种响应式的方式来观察键盘 frame 的变化。忘掉那些键盘通知吧。它也能完美地与 UIScrollViewKeyboardDismissMode.interactive 协同工作。

rxkeyboard-message rxkeyboard-textview

开始使用

RxKeyboard 提供了两个 Driver

/// An observable keyboard frame.
let frame: Driver<CGRect>

/// An observable visible height of keyboard. Emits keyboard height if the keyboard is visible
/// or `0` if the keyboard is not visible.
let visibleHeight: Driver<CGFloat>

/// Same with `visibleHeight` but only emits values when keyboard is about to show. This is
/// useful when adjusting scroll view content offset.
let willShowVisibleHeight: Driver<CGFloat>

使用 RxKeyboard.instance 来获取单例实例。

RxKeyboard.instance

订阅 RxKeyboard.instance.frame 来观察键盘 frame 的变化。

RxKeyboard.instance.frame
  .drive(onNext: { frame in
    print(frame)
  })
  .disposed(by: disposeBag)

技巧和窍门

依赖

要求

贡献

在开发中,RxKeyboard 使用 Swift Package Manager 管理依赖。使用下面的命令来生成 Xcode 项目文件。注意,.xcodeproj 文件的更改不会通过 git 跟踪。

$ swift package generate-xcodeproj

安装

许可

RxKeyboard 使用 MIT 许可证。