转载

#selector() 和响应链

因为 Swift 2.2 中 selector 的新语法,我用在「 在 Target-Action 中使用响应链 」中的方法产生了一个警告,让我们来修正它。

总管协议

首先我们加入一个协议:

@objc protocol DetailShowable {
@objc func showDetail()
}

之后,我们可以给 Selector 添加一个 extension,就像 Andyy Hope 在他的 这篇:ox:文 中提到的那样,这个 extension 就长这样:

private extension Selector {
static let showDetail = #selector(DetailShowable.showDetail)
}

现在把 action 添加到响应链中就变得 so easy 了,就像这样:

button.addTarget(nil, 
action: .showDetail,
forControlEvents: .TouchUpInside)

最后,我们需要让响应链中的一些响应者对象遵循 DetailShowable 协议。

你可以在 github 上找到这些代码。

本文由 SwiftGG 翻译组翻译,已经获得作者翻译授权,最新文章请访问http://swift.gg。

原文  http://swift.gg/2016/04/20/selector-and-the-responder-chain/
正文到此结束
Loading...