Adds `rx_selected` to `UIControl`.

This commit is contained in:
Krunoslav Zaher 2016-02-14 22:44:13 +01:00
parent ff452009cd
commit 03aa560de0
2 changed files with 25 additions and 0 deletions

View File

@ -25,6 +25,15 @@ extension UIControl {
}.asObserver()
}
/**
Bindable sink for `selected` property.
*/
public var rx_selected: AnyObserver<Bool> {
return UIBindingObserver(UIElement: self) { control, selected in
control.selected = selected
}.asObserver()
}
/**
Reactive wrapper for target action pattern.

View File

@ -27,6 +27,22 @@ extension ControlTests {
XCTAssert(subject.enabled == false, "Expected enabled set to false")
}
func testSubscribedSelectedToTrue() {
let subject = UIControl()
let disposable = Observable.just(true).subscribe(subject.rx_selected)
defer { disposable.dispose() }
XCTAssert(subject.selected == true, "Expected selected set to true")
}
func testSubscribeSelectedToFalse() {
let subject = UIControl()
let disposable = Observable.just(false).subscribe(subject.rx_selected)
defer { disposable.dispose() }
XCTAssert(subject.selected == false, "Expected selected set to false")
}
}
// UITextField