Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import TTTAttributedLabel
- import RxSwift
- import RxCocoa
- fileprivate class RxTTTAttributedLabelDelegateProxy: DelegateProxy, TTTAttributedLabelDelegate, DelegateProxyType {
- //We need a way to read the current delegate
- static func currentDelegateFor(_ object: AnyObject) -> AnyObject? {
- let label: TTTAttributedLabel = object as! TTTAttributedLabel
- return label.delegate
- }
- //We need a way to set the current delegate
- static func setCurrentDelegate(_ delegate: AnyObject?, toObject object: AnyObject) {
- let label: TTTAttributedLabel = object as! TTTAttributedLabel
- label.delegate = delegate as? TTTAttributedLabelDelegate
- }
- }
- extension Reactive where Base : TTTAttributedLabel {
- var delegate: DelegateProxy {
- return RxTTTAttributedLabelDelegateProxy.proxyForObject(base)
- }
- var linkDidTap: Observable<URL> {
- let selector = #selector(
- ((TTTAttributedLabelDelegate.attributedLabel(_:didSelectLinkWith:))!
- as (TTTAttributedLabelDelegate) -> (TTTAttributedLabel, URL) -> Void))
- return delegate.observe(selector)
- .map { params in
- return params[1] as! URL
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement