mirror of
https://github.com/ReactiveX/RxSwift.git
synced 2024-10-05 14:37:29 +03:00
57 lines
1.5 KiB
Swift
57 lines
1.5 KiB
Swift
//
|
|
// RxTextViewDelegateProxy.swift
|
|
// RxCocoa
|
|
//
|
|
// Created by Yuta ToKoRo on 7/19/15.
|
|
// Copyright © 2015 Krunoslav Zaher. All rights reserved.
|
|
//
|
|
|
|
#if os(iOS) || os(tvOS)
|
|
|
|
import Foundation
|
|
import UIKit
|
|
#if !RX_NO_MODULE
|
|
import RxSwift
|
|
#endif
|
|
|
|
/**
|
|
For more information take a look at `DelegateProxyType`.
|
|
*/
|
|
public class RxTextViewDelegateProxy
|
|
: RxScrollViewDelegateProxy
|
|
, UITextViewDelegate {
|
|
|
|
/**
|
|
Typed parent object.
|
|
*/
|
|
public weak private(set) var textView: UITextView?
|
|
|
|
/**
|
|
Initializes `RxTextViewDelegateProxy`
|
|
|
|
- parameter parentObject: Parent object for delegate proxy.
|
|
*/
|
|
public required init(parentObject: AnyObject) {
|
|
self.textView = (parentObject as! UITextView)
|
|
super.init(parentObject: parentObject)
|
|
}
|
|
|
|
// MARK: delegate methods
|
|
|
|
/**
|
|
For more information take a look at `DelegateProxyType`.
|
|
*/
|
|
@objc public func textView(textView: UITextView, shouldChangeTextInRange range: NSRange, replacementText text: String) -> Bool {
|
|
/**
|
|
We've had some issues with observing text changes. This is here just in case we need the same hack in future and that
|
|
we wouldn't need to change the public interface.
|
|
*/
|
|
let forwardToDelegate = self.forwardToDelegate() as? UITextViewDelegate
|
|
return forwardToDelegate?.textView?(textView,
|
|
shouldChangeTextInRange: range,
|
|
replacementText: text) ?? true
|
|
}
|
|
}
|
|
|
|
#endif
|