RxSwift/RxCocoa/iOS/UILabel+Rx.swift

60 lines
1.3 KiB
Swift

//
// UILabel+Rx.swift
// RxCocoa
//
// Created by Krunoslav Zaher on 4/1/15.
// Copyright (c) 2015 Krunoslav Zaher. All rights reserved.
//
#if os(iOS) || os(tvOS)
import Foundation
#if !RX_NO_MODULE
import RxSwift
#endif
import UIKit
extension UILabel {
/**
Bindable sink for `text` property.
*/
public var rx_text: AnyObserver<String> {
return AnyObserver { [weak self] event in
MainScheduler.ensureExecutingOnScheduler()
switch event {
case .Next(let value):
self?.text = value
case .Error(let error):
bindingErrorToInterface(error)
break
case .Completed:
break
}
}
}
/**
Bindable sink for `attributedText` property.
*/
public var rx_attributedText: AnyObserver<NSAttributedString?> {
return AnyObserver { [weak self] event in
MainScheduler.ensureExecutingOnScheduler()
switch event {
case .Next(let value):
self?.attributedText = value
case .Error(let error):
bindingErrorToInterface(error)
break
case .Completed:
break
}
}
}
}
#endif