// // TextInput.swift // Rx // // Created by Krunoslav Zaher on 5/12/16. // Copyright © 2016 Krunoslav Zaher. All rights reserved. // import Foundation #if os(iOS) || os(tvOS) import UIKit /** Represents text input with reactive extensions. */ public struct TextInput { /** Base text input to extend. */ public let base: Base /** Reactive wrapper for `text` property. */ public let text: ControlProperty /** Initializes new text input. - parameter base: Base object. - parameter text: Textual control property. */ public init(base: Base, text: ControlProperty) { self.base = base self.text = text } } extension Reactive where Base: UITextField { /** Reactive text input. */ public var textInput: TextInput { return TextInput(base: base, text: self.text) } } extension Reactive where Base: UITextView { /** Reactive text input. */ public var textInput: TextInput { return TextInput(base: base, text: self.text) } } /** Represents text input with reactive extensions. */ @available(*, deprecated, renamed: "TextInput") public protocol RxTextInput : UITextInput { @available(*, deprecated, renamed: "rx.textInput.text") var rx_text: ControlProperty { get } } extension UITextField : RxTextInput { @available(*, deprecated, renamed: "rx.textInput.text") public var rx_text: ControlProperty { return self.rx.text } } extension UITextView : RxTextInput { @available(*, deprecated, renamed: "rx.textInput.text") public var rx_text: ControlProperty { return self.rx.text } } #endif #if os(OSX) import Cocoa /** Represents text input with reactive extensions. */ public struct TextInput { /** Base text input to extend. */ public let base: Base /** Reactive wrapper for `text` property. */ public let text: ControlProperty /** Initializes new text input. - parameter base: Base object. - parameter text: Textual control property. */ public init(base: Base, text: ControlProperty) { self.base = base self.text = text } } extension Reactive where Base: NSTextField { /** Reactive text input. */ public var textInput: TextInput { return TextInput(base: base, text: self.text) } } /** Represents text input with reactive extensions. */ @available(*, deprecated, renamed: "TextInput") public protocol RxTextInput : NSTextInput { /** Reactive wrapper for `text` property. */ @available(*, deprecated, renamed: "rx.textInput.text") var rx_text: ControlProperty { get } } @available(*, deprecated) extension NSTextField : RxTextInput { /** Reactive wrapper for `text` property. */ @available(*, deprecated, renamed: "rx.textInput.text") public var rx_text: ControlProperty { return self.rx.text } } #endif