Compare commits

...

1 Commits

Author SHA1 Message Date
Krunoslav Zaher ac156405b5 Adds missing UITextView extensions. 2016-08-30 22:18:03 +02:00
2 changed files with 122 additions and 2 deletions

View File

@ -64,6 +64,46 @@ extension UITextView : RxTextInput {
return ControlProperty(values: source, valueSink: bindingObserver)
}
/**
Reactive wrapper for `delegate` message.
*/
public var rx_didBeginEditing: ControlEvent<()> {
return ControlEvent<()>(events: self.rx_delegate.observe(#selector(UITextViewDelegate.textViewDidBeginEditing(_:)))
.map { a in
return ()
})
}
/**
Reactive wrapper for `delegate` message.
*/
public var rx_didEndEditing: ControlEvent<()> {
return ControlEvent<()>(events: self.rx_delegate.observe(#selector(UITextViewDelegate.textViewDidEndEditing(_:)))
.map { a in
return ()
})
}
/**
Reactive wrapper for `delegate` message.
*/
public var rx_didChange: ControlEvent<()> {
return ControlEvent<()>(events: self.rx_delegate.observe(#selector(UITextViewDelegate.textViewDidChange(_:)))
.map { a in
return ()
})
}
/**
Reactive wrapper for `delegate` message.
*/
public var rx_didChangeSelection: ControlEvent<()> {
return ControlEvent<()>(events: self.rx_delegate.observe(#selector(UITextViewDelegate.textViewDidChangeSelection(_:)))
.map { a in
return ()
})
}
}
#endif

View File

@ -28,6 +28,86 @@ class UITextViewTests : RxTest {
textView.rx_text.on(.Next("Text2"))
XCTAssertTrue(textView.set)
}
func testDidBeginEditing() {
var completed = false
var value: ()?
autoreleasepool {
let textView = UITextView(frame: CGRectMake(0, 0, 1, 1))
_ = textView.rx_didBeginEditing.subscribe(onNext: { n in
value = n
}, onCompleted: {
completed = true
})
textView.delegate!.textViewDidBeginEditing!(textView)
}
XCTAssertNotNil(value)
XCTAssertTrue(completed)
}
func testDidEndEditing() {
var completed = false
var value: ()?
autoreleasepool {
let textView = UITextView(frame: CGRectMake(0, 0, 1, 1))
_ = textView.rx_didEndEditing.subscribe(onNext: { n in
value = n
}, onCompleted: {
completed = true
})
textView.delegate!.textViewDidEndEditing!(textView)
}
XCTAssertNotNil(value)
XCTAssertTrue(completed)
}
func testDidChange() {
var completed = false
var value: ()?
autoreleasepool {
let textView = UITextView(frame: CGRectMake(0, 0, 1, 1))
_ = textView.rx_didChange.subscribe(onNext: { n in
value = n
}, onCompleted: {
completed = true
})
textView.delegate!.textViewDidChange!(textView)
}
XCTAssertNotNil(value)
XCTAssertTrue(completed)
}
func testDidChangeSelection() {
var completed = false
var value: ()?
autoreleasepool {
let textView = UITextView(frame: CGRectMake(0, 0, 1, 1))
_ = textView.rx_didChangeSelection.subscribe(onNext: { n in
value = n
}, onCompleted: {
completed = true
})
textView.delegate!.textViewDidChangeSelection!(textView)
}
XCTAssertNotNil(value)
XCTAssertTrue(completed)
}
}
class UITextViewSubclass2 : UITextView {