LTResponderEvent
基于事件响应链的事件管理器
要求
- Xcode 9+
- Swift 4.0+
- iOS 8+
安装
LTResponderEvent 通过 CocoaPods 提供。要安装它,只需将以下行添加到 Podfile 中:
pod 'LTResponderEvent'
用法
发布事件
将名称定义为事件的键。
static let ShareKey: String = "TestContentView.ShareKey"
static let OrderKey: Int = "TestContentView.OrderKey"
发布事件
post(event: TestContentView.ShareKey)
您还可以带一些内容发布事件。
post(event: TestContentView.ShareKey, ["action": "Share"])
注册事件
添加您想要响应的事件。在此功能中,新事件将默认接受。
override func registerResponderEvent() {
add(event: TestContentView.ShareKey, #selector(getEvent(_:)))
}
@objc func getEvent(_ userInfo: [AnyHashable: Any]?) {
self.title = userInfo?["action"] as? String
}
添加
您可以轻松添加事件。
add(event: TestContentView.ShareKey, #selector(getEvent(_:)))
您还可以通过添加一些装饰来影响下一个响应者。
add(event: TestContentView.ShareKey, #selector(getEvent(_:)), false) { (userInfo) -> [AnyHashable : Any]? in
var result = userInfo
result?["address"] = "BeiJing"
return result
}
删除
删除不需要的事件。
remove(event: TestContentView.ShareKey)
替换
您可以替换某些事件。
replace(event: TestContentView.ShareKey, event: TestContentView.OrderKey)
交换
交换两个事件
exchange(event: TestContentView.ShareKey, event: TestContentView.OrderKey)
重置
在交换或删除或添加之后,可以恢复默认事件。
resetResponderEvent()
许可协议
LTResponderEvent遵从MIT协议。更多信息请查阅LICENSE文件。