#selector() and the responder chain
With the new syntax for selectors in Swift 2.2 the approach I used in “Utilize the responder chain for target action” produces a warning. Let’s fix that.
Protocols for president
First we add a protocol:
@objc protocol DetailShowable {
@objc func showDetail()
}
Then we can add an extension to Selector
as
described in this awesome
post
by Andyy Hope that looks like this:
private extension Selector {
static let showDetail = #selector(DetailShowable.showDetail)
}
Adding the action to the responder chain is then as easy as this:
button.addTarget(nil,
action: .showDetail,
forControlEvents: .TouchUpInside)
Then some responder object in the responder chain needs to conform to
the DetailShowable
protocol.
You can find the code on github.