HandlersKit 1.0.0

HandlersKit 1.0.0

Maintained by iOS HeadHunter, Dmitry Arbuzov, Gena Kupriyanov.

  • By
  • HeadHunter iOS Team


Build Status Codecov Cocoapods Carthage compatible SPM compatible Xcode Swift License

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.


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

Every method allows chaining.

textField.shouldChangeString { fromString, toString in
    print("\(fromString) -> \(toString)")
    return true
}.shouldBeginEditing {
}.didEndEditing {
    print("UITextField did end editing")




To install HandlersKit using CocoaPods add the following line to your Podfile:

pod 'HandlersKit'

Then run in Terminal:

$ pod install


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:

  1. In Xcode, go to File > Swift Packages > Add Package Dependency... and enter the following URL:
  1. Or add the following as a dependency to your Package.swift:
.package(url: "https://github.com/hhru/HandlersKit.git", from: "1.0.0")


  • 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.


HandlersKit is released under the MIT License. (see LICENSE).