SBKeyboardEvents 0.3

SBKeyboardEvents 0.3

测试已测试
语言语言 SwiftSwift
许可证 MIT
发布最后发布2019年5月
SPM支持 SPM

Steve Barnegren 维护。



SBKeyboardEvents

Version License Platform

SBKeyboardEvents 可以让您轻松响应用户键盘事件,无需在每个视图控制器中编写相同的样板代码。再也不需要在 viewDidLoad 方法中订阅如此多个通知了!

示例

要运行示例项目,请先克隆仓库,然后从 Example 目录运行 pod install

安装

SBKeyboardEvents 通过 CocoaPods 提供。要安装它,只需将以下行添加到您的 Podfile 即可

pod "SBKeyboardEvents"

用法

您的 ViewController(或其他类,如果愿意的话),应实现 'KeyboardEventListener' 协议。然后应使用 SBKeyboardEvents 单例进行键盘事件的注册。

######(存在取消订阅监听器的方法,但在类释放时这些方法会自动处理,因此在实践中,这些方法很少需要。订阅并忘记是安全的。SBKeyboardEvents 保留对监听器的弱引用,因此不会保留它们)

override func viewDidLoad() {
	super.viewDidLoad()
        
	SBKeyboardEvents.addListener(self)
}

对于最简单的实现,您只需要实现一个方法,《code>animateForKeyboardHeight(height:)

此方法在键盘显示/消失动画块内被调用,因此调整约束/框架,其余都将自动处理。注意,这里的的高度是从屏幕底部到键盘的高度。

extension GameSetupViewController: KeyboardEventListener {
    
    func animateForKeyboardHeight(_ height: CGFloat) {
         
        keyboardPaddingConstraint.constant = height;
        view.setNeedsLayout()
        view.layoutIfNeeded()
    }
}

这是完整的协议声明

public protocol KeyboardEventListener : class {
    
    func keyboardWillAppear()
    func keyboardDidAppear()
    func keyboardWillHide()
    func keyboardDidHide()
    func keyboardWillChangeFrame(_ frame: CGRect)
    func keyboardDidChangeFrame(_ frame: CGRect)
    func animateForKeyboardFrame(_ frame: CGRect)
    func animateForKeyboardHeight(_ height: CGFloat)
}

包含 'will' 的函数会在动画之前发生。

包含 'did' 的函数会在动画之后发生。

以 'animate' 开头的函数会在键盘动画块内被调用

作者

Steve Barnegren,[email protected]

@SteveBarnegren

许可证

SBKeyboardEvents 可在 MIT 许可证下使用。有关更多信息,请参阅 LICENSE 文件。