title: Using a subclass of UITextView and a custom on-screen keyboard, calling textField.textShouldChange
body: <p>I built a custom on-screen keyboard that's <em>not</em> an <code>inputView</code> of the <code>UITextField</code></p>
  
  <p>In the delegate method from the keyboard, I want to call <code>activeTextField.shouldChangeText(in: UITextRange, replacementText: String)</code></p>
  
  <p><code>String</code> here is obviously the new value generated from my keyboard. <code>UITextRange</code> is just a class meant to be subclassed:</p>
  
  <pre><code>/* To accommodate text entry in documents that contain nested elements, or in which supplying and
   * evaluating characters at indices is an expensive proposition, a position within a text input
   * document is represented as an object, not an integer.  UITextRange and UITextPosition are abstract
   * classes provided to be subclassed when adopting UITextInput */
  
  @available(iOS 3.2, *)
  open class UITextRange : NSObject {
  
      open var isEmpty: Bool { get } //  Whether the range is zero-length.    
  
      open var start: UITextPosition { get }
  
      open var end: UITextPosition { get }
  }
  </code></pre>
  
  <p>I'm not exactly sure what to do here to target the full string. Any help would be appreciated. Thanks!</p>