HandlersKit
HandlersKit is a light-weight iOS Framework that allows you to use modern closure syntax instead of the target-action and delegate patterns. This framework covers the most popular UIKit classes.
Overview
Closure syntax instead of UIControl's target-action mechanism.
control.on(.valueChanged) {
print("UIControl's value changed")
}
Convenient methods for the most common cases.
button.onTap {
print("UIButton touch up inside")
}
slider.onChange { newValue in
print("UISlider changed value")
}
Access to the same object inside the closure without typecasting or optional unwrapping.
let button = MyActivityIndicatorButton()
button.onTap { (sender: MyActivityIndicatorButton) in
sender.showActivityIndicator()
}
Every method allows chaining.
textField.shouldChangeString { fromString, toString in
print("\(fromString) -> \(toString)")
return true
}.shouldBeginEditing {
true
}.didEndEditing {
print("UITextField did end editing")
}
Benefits
- HandlersKit extends UIControl, UIBarButtonItem, UIGestureRecognizer, UITextField and UITextView.
- Closures stored as associated objects. No singleton or Notification Center used. It means that all objects captured by this closure will be released when that UIKit object released.
Installation
CocoaPods
To install HandlersKit using CocoaPods add the following line to your Podfile
:
pod 'HandlersKit'
Then run in Terminal:
$ pod install
Carthage
To integrate HandlersKit into your project using Carthage, specify it in your Cartfile:
github "hhru/HandlersKit"
Swift Package Manager
To integrate HandlersKit into your project using Swift Package Manager, you have two different ways:
- In Xcode, go to
File > Swift Packages > Add Package Dependency...
and enter the following URL:
https://github.com/hhru/HandlersKit
- Or add the following as a dependency to your
Package.swift
:
.package(url: "https://github.com/hhru/HandlersKit.git", from: "1.0.0")
Manual
- Go to releases page.
- Download the latest release
Source code
. - Drag and drop all .swift files from
HandlersKit-x.y.z/Sources
folder into your Xcode project. Check the option Copy items if needed.
License
HandlersKit is released under the MIT License. (see LICENSE).