#333 made changes according to Rx naming conventions

This commit is contained in:
Segey Shulga 2015-12-31 17:41:57 +02:00
parent 195586ef76
commit c555862a67
4 changed files with 36 additions and 24 deletions

View File

@ -7,12 +7,12 @@
objects = {
/* Begin PBXBuildFile section */
842A5A2C1C357F92003568D5 /* NSTextStorage+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = 842A5A281C357F7D003568D5 /* NSTextStorage+Rx.swift */; };
842A5A2D1C357F93003568D5 /* NSTextStorage+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = 842A5A281C357F7D003568D5 /* NSTextStorage+Rx.swift */; };
842A5A2E1C357F94003568D5 /* NSTextStorage+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = 842A5A281C357F7D003568D5 /* NSTextStorage+Rx.swift */; };
84C225A31C33F00B008724EC /* RxTextStorageDelegateProxy.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84C225A21C33F00B008724EC /* RxTextStorageDelegateProxy.swift */; };
84C225A41C33F00B008724EC /* RxTextStorageDelegateProxy.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84C225A21C33F00B008724EC /* RxTextStorageDelegateProxy.swift */; };
84C225A51C33F00B008724EC /* RxTextStorageDelegateProxy.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84C225A21C33F00B008724EC /* RxTextStorageDelegateProxy.swift */; };
84C225AF1C3404F4008724EC /* NSTextStorage+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84C225AE1C3404F4008724EC /* NSTextStorage+Rx.swift */; };
84C225B01C3404F4008724EC /* NSTextStorage+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84C225AE1C3404F4008724EC /* NSTextStorage+Rx.swift */; };
84C225B11C3404F4008724EC /* NSTextStorage+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84C225AE1C3404F4008724EC /* NSTextStorage+Rx.swift */; };
9BA1CBD31C0F7D550044B50A /* UIActivityIndicatorView+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9BA1CBD11C0F7C0A0044B50A /* UIActivityIndicatorView+Rx.swift */; };
9BA1CBFD1C0F84A10044B50A /* UIActivityIndicatorView+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9BA1CBD11C0F7C0A0044B50A /* UIActivityIndicatorView+Rx.swift */; };
9BA1CBFE1C0F84C40044B50A /* UIActivityIndicatorView+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9BA1CBD11C0F7C0A0044B50A /* UIActivityIndicatorView+Rx.swift */; };
@ -1010,8 +1010,8 @@
/* End PBXContainerItemProxy section */
/* Begin PBXFileReference section */
842A5A281C357F7D003568D5 /* NSTextStorage+Rx.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "NSTextStorage+Rx.swift"; sourceTree = "<group>"; };
84C225A21C33F00B008724EC /* RxTextStorageDelegateProxy.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RxTextStorageDelegateProxy.swift; sourceTree = "<group>"; };
84C225AE1C3404F4008724EC /* NSTextStorage+Rx.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "NSTextStorage+Rx.swift"; sourceTree = "<group>"; };
9BA1CBD11C0F7C0A0044B50A /* UIActivityIndicatorView+Rx.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "UIActivityIndicatorView+Rx.swift"; sourceTree = "<group>"; };
A111CE961B91C97C00D0DCEE /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
B1B7C3BC1BDD39DB0076934E /* TakeLast.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TakeLast.swift; sourceTree = "<group>"; };
@ -1779,7 +1779,7 @@
C88254121B8A752B00B02D69 /* UITableView+Rx.swift */,
C88254131B8A752B00B02D69 /* UITextField+Rx.swift */,
C88254141B8A752B00B02D69 /* UITextView+Rx.swift */,
84C225AE1C3404F4008724EC /* NSTextStorage+Rx.swift */,
842A5A281C357F7D003568D5 /* NSTextStorage+Rx.swift */,
9BA1CBD11C0F7C0A0044B50A /* UIActivityIndicatorView+Rx.swift */,
C8BCD3EC1C14B5FB005F1280 /* UIView+Rx.swift */,
);
@ -2522,7 +2522,6 @@
C8093EFD1B8A732E0088E94D /* RxTarget.swift in Sources */,
C88254361B8A752B00B02D69 /* UITextView+Rx.swift in Sources */,
C88254171B8A752B00B02D69 /* RxTableViewReactiveArrayDataSource.swift in Sources */,
84C225AF1C3404F4008724EC /* NSTextStorage+Rx.swift in Sources */,
C882541E1B8A752B00B02D69 /* RxCollectionViewDataSourceProxy.swift in Sources */,
C80DDE971BCE69BA006A1832 /* ControlProperty+Driver.swift in Sources */,
C80DDE931BCE69BA006A1832 /* ControlEvent+Driver.swift in Sources */,
@ -2564,6 +2563,7 @@
C8093ED51B8A732E0088E94D /* _RXDelegateProxy.m in Sources */,
C8093EF51B8A732E0088E94D /* NSObject+Rx.swift in Sources */,
9BA1CBD31C0F7D550044B50A /* UIActivityIndicatorView+Rx.swift in Sources */,
842A5A2C1C357F92003568D5 /* NSTextStorage+Rx.swift in Sources */,
C88254241B8A752B00B02D69 /* RxTextViewDelegateProxy.swift in Sources */,
C88254271B8A752B00B02D69 /* UIBarButtonItem+Rx.swift in Sources */,
C88254251B8A752B00B02D69 /* UIActionSheet+Rx.swift in Sources */,
@ -3195,7 +3195,6 @@
C8F0C00A1BBBFBB9001B112F /* RxTarget.swift in Sources */,
C8F0C00B1BBBFBB9001B112F /* UITextView+Rx.swift in Sources */,
C8F0C00C1BBBFBB9001B112F /* RxTableViewReactiveArrayDataSource.swift in Sources */,
84C225B11C3404F4008724EC /* NSTextStorage+Rx.swift in Sources */,
C8F0C00D1BBBFBB9001B112F /* RxCollectionViewDataSourceProxy.swift in Sources */,
C80DDE9A1BCE69BA006A1832 /* ControlProperty+Driver.swift in Sources */,
C80DDE961BCE69BA006A1832 /* ControlEvent+Driver.swift in Sources */,
@ -3237,6 +3236,7 @@
C8F0C0261BBBFBB9001B112F /* _RXDelegateProxy.m in Sources */,
C8F0C0271BBBFBB9001B112F /* NSObject+Rx.swift in Sources */,
9BA1CBFE1C0F84C40044B50A /* UIActivityIndicatorView+Rx.swift in Sources */,
842A5A2E1C357F94003568D5 /* NSTextStorage+Rx.swift in Sources */,
C8F0C0281BBBFBB9001B112F /* RxTextViewDelegateProxy.swift in Sources */,
C8F0C0291BBBFBB9001B112F /* UIBarButtonItem+Rx.swift in Sources */,
C8F0C02A1BBBFBB9001B112F /* UIActionSheet+Rx.swift in Sources */,
@ -3287,7 +3287,6 @@
D2138C981BB9BEEE00339B5C /* RxCocoa.swift in Sources */,
D2138C991BB9BEEE00339B5C /* RxTarget.swift in Sources */,
D203C5081BB9C53E00D02D00 /* UIGestureRecognizer+Rx.swift in Sources */,
84C225B01C3404F4008724EC /* NSTextStorage+Rx.swift in Sources */,
D2138C931BB9BEDA00339B5C /* NSNotificationCenter+Rx.swift in Sources */,
C80DDE991BCE69BA006A1832 /* ControlProperty+Driver.swift in Sources */,
C80DDE951BCE69BA006A1832 /* ControlEvent+Driver.swift in Sources */,
@ -3329,6 +3328,7 @@
D203C5051BB9C53E00D02D00 /* UICollectionView+Rx.swift in Sources */,
D2138C8D1BB9BECD00339B5C /* ControlProperty.swift in Sources */,
9BA1CBFD1C0F84A10044B50A /* UIActivityIndicatorView+Rx.swift in Sources */,
842A5A2D1C357F93003568D5 /* NSTextStorage+Rx.swift in Sources */,
D203C5071BB9C53E00D02D00 /* UIDatePicker+Rx.swift in Sources */,
D2138C941BB9BEDA00339B5C /* NSObject+Rx+CoreGraphics.swift in Sources */,
D203C50D1BB9C53E00D02D00 /* UISegmentedControl+Rx.swift in Sources */,

View File

@ -6,13 +6,12 @@
// Copyright © 2015 Krunoslav Zaher. All rights reserved.
//
#if os(iOS) || os(tvOS)
import Foundation
import UIKit
import Foundation
#if !RX_NO_MODULE
import RxSwift
#endif
import UIKit
extension NSTextStorage {
@ -20,15 +19,15 @@ extension NSTextStorage {
return proxyForObject(RxTextStorageDelegateProxy.self, self)
}
public var rx_string:Observable<String> {
public var rx_didProcessEditingRangeChangeInLength: Observable<(editedMask:NSTextStorageEditActions, editedRange:NSRange, delta:Int)> {
return rx_delegate
.observe("textStorage:didProcessEditing:range:changeInLength:")
.map({ a in
let textStorage:NSTextStorage = castOrFatalError(a[0])
return textStorage.string
.map({ (a) in
let editedMask:NSTextStorageEditActions = NSTextStorageEditActions(rawValue: castOrFatalError(a[1]) as UInt)
let editedRange:NSRange = (castOrFatalError(a[2]) as NSValue).rangeValue
let delta:Int = castOrFatalError(a[3])
return (editedMask, editedRange, delta)
})
.distinctUntilChanged() // dont know why, but system call delegate twice on auto correction
}
}
#endif

View File

@ -31,7 +31,20 @@ extension UITextView {
Reactive wrapper for `text` property.
*/
public var rx_text: ControlProperty<String> {
let source: Observable<String> = textStorage.rx_string
let source: Observable<String> = Observable.deferred({ [weak self] () -> Observable<String> in
let text = self?.text ?? ""
let textChanged = self?.textStorage
.rx_didProcessEditingRangeChangeInLength
.map({[weak self] (_, _, _) in
return self?.textStorage.string ?? ""
})
?? Observable.empty()
return textChanged
.startWith(text)
.distinctUntilChanged()
})
return ControlProperty(values: source, valueSink: AnyObserver { [weak self] event in
switch event {

View File

@ -11,9 +11,9 @@
07A5C3DB1B70B703001EFE5C /* CalculatorViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 07A5C3DA1B70B703001EFE5C /* CalculatorViewController.swift */; };
07A5C3DC1B70B703001EFE5C /* CalculatorViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 07A5C3DA1B70B703001EFE5C /* CalculatorViewController.swift */; };
07E3C2331B03605B0010338D /* Dependencies.swift in Sources */ = {isa = PBXBuildFile; fileRef = 07E3C2321B03605B0010338D /* Dependencies.swift */; };
842A5A271C357F63003568D5 /* NSTextStorage+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = 842A5A251C357F21003568D5 /* NSTextStorage+Rx.swift */; };
84C225A81C3402E5008724EC /* UITextView+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = C89465591BC6C2BC0055219D /* UITextView+Rx.swift */; };
84C225AB1C340474008724EC /* RxTextStorageDelegateProxy.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84C225AA1C340474008724EC /* RxTextStorageDelegateProxy.swift */; };
84C225AD1C34048E008724EC /* NSTextStorage+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84C225AC1C34048E008724EC /* NSTextStorage+Rx.swift */; };
9B4612951C106CF100BBBB4E /* UIActivityIndicatorView+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9B4612941C106CF100BBBB4E /* UIActivityIndicatorView+Rx.swift */; };
B1604CB51BE49F8D002E1279 /* DownloadableImage.swift in Sources */ = {isa = PBXBuildFile; fileRef = B1604CB41BE49F8D002E1279 /* DownloadableImage.swift */; };
B1604CC21BE5B895002E1279 /* ReachabilityService.swift in Sources */ = {isa = PBXBuildFile; fileRef = B18F3BE11BDB2E8F000AAC79 /* ReachabilityService.swift */; };
@ -586,8 +586,8 @@
075F130F1B4E9D5A000D7861 /* APIWrappersViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = APIWrappersViewController.swift; sourceTree = "<group>"; };
07A5C3DA1B70B703001EFE5C /* CalculatorViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CalculatorViewController.swift; sourceTree = "<group>"; };
07E3C2321B03605B0010338D /* Dependencies.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = Dependencies.swift; path = Examples/Dependencies.swift; sourceTree = "<group>"; };
842A5A251C357F21003568D5 /* NSTextStorage+Rx.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "NSTextStorage+Rx.swift"; sourceTree = "<group>"; };
84C225AA1C340474008724EC /* RxTextStorageDelegateProxy.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RxTextStorageDelegateProxy.swift; sourceTree = "<group>"; };
84C225AC1C34048E008724EC /* NSTextStorage+Rx.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "NSTextStorage+Rx.swift"; sourceTree = "<group>"; };
9B4612941C106CF100BBBB4E /* UIActivityIndicatorView+Rx.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "UIActivityIndicatorView+Rx.swift"; sourceTree = "<group>"; };
B1604CB41BE49F8D002E1279 /* DownloadableImage.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DownloadableImage.swift; sourceTree = "<group>"; };
B1604CC81BE5BBFA002E1279 /* UIImageView+DownloadableImage.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "UIImageView+DownloadableImage.swift"; sourceTree = "<group>"; };
@ -1599,7 +1599,7 @@
C89465571BC6C2BC0055219D /* UITableView+Rx.swift */,
C89465581BC6C2BC0055219D /* UITextField+Rx.swift */,
C89465591BC6C2BC0055219D /* UITextView+Rx.swift */,
84C225AC1C34048E008724EC /* NSTextStorage+Rx.swift */,
842A5A251C357F21003568D5 /* NSTextStorage+Rx.swift */,
9B4612941C106CF100BBBB4E /* UIActivityIndicatorView+Rx.swift */,
);
path = iOS;
@ -2186,11 +2186,11 @@
C8297E451B6CF905000589EA /* SectionedViewType.swift in Sources */,
C822B1DD1C14CD1C0088A01A /* DefaultImplementations.swift in Sources */,
C89464D51BC6C2B00055219D /* ObserveOnSerialDispatchQueue.swift in Sources */,
842A5A271C357F63003568D5 /* NSTextStorage+Rx.swift in Sources */,
C843A08F1C1CE39900CBA4BD /* GitHubSearchRepositoriesAPI.swift in Sources */,
C894658E1BC6C2BC0055219D /* UIAlertView+Rx.swift in Sources */,
C83974231BF77413004F02CC /* NSObject+Rx+KVORepresentable.swift in Sources */,
C8297E461B6CF905000589EA /* Example.swift in Sources */,
84C225AD1C34048E008724EC /* NSTextStorage+Rx.swift in Sources */,
C89465081BC6C2B00055219D /* PublishSubject.swift in Sources */,
C89464FC1BC6C2B00055219D /* RxMutableBox.swift in Sources */,
C809E97B1BE6841C0058D948 /* Wireframe.swift in Sources */,