Advertisement
Guest User

Untitled

a guest
Sep 29th, 2016
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.11 KB | None | 0 0
  1. import TTTAttributedLabel
  2. import RxSwift
  3. import RxCocoa
  4.  
  5. fileprivate class RxTTTAttributedLabelDelegateProxy: DelegateProxy, TTTAttributedLabelDelegate, DelegateProxyType {
  6. //We need a way to read the current delegate
  7. static func currentDelegateFor(_ object: AnyObject) -> AnyObject? {
  8. let label: TTTAttributedLabel = object as! TTTAttributedLabel
  9. return label.delegate
  10. }
  11. //We need a way to set the current delegate
  12. static func setCurrentDelegate(_ delegate: AnyObject?, toObject object: AnyObject) {
  13. let label: TTTAttributedLabel = object as! TTTAttributedLabel
  14. label.delegate = delegate as? TTTAttributedLabelDelegate
  15. }
  16. }
  17.  
  18. extension Reactive where Base : TTTAttributedLabel {
  19.  
  20. var delegate: DelegateProxy {
  21. return RxTTTAttributedLabelDelegateProxy.proxyForObject(base)
  22. }
  23.  
  24. var linkDidTap: Observable<URL> {
  25. let selector = #selector(
  26. ((TTTAttributedLabelDelegate.attributedLabel(_:didSelectLinkWith:))!
  27. as (TTTAttributedLabelDelegate) -> (TTTAttributedLabel, URL) -> Void))
  28. return delegate.observe(selector)
  29. .map { params in
  30. return params[1] as! URL
  31. }
  32. }
  33. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement