title: textViewDidChangeSelection method thinks textView.text is empty
body: <p>For various reasons, I need to access the text in a textview whenever a selection is changed, so I have implemented the delegate method textViewDidChangeSelection() to do so. For some reason though, when I try to access textView.text from within this method, sometimes it comes back as empty even when it's not. Take this bit of code for example.</p>
  
  <pre><code>func textViewDidChangeSelection(_ textView: UITextView) {
      print("Called textViewDidChangeSelection")
  
      if textView.text.isEmpty {
          print("textview is empty")
      } else {
          print("textview is not empty")
      }
  }
  </code></pre>
  
  <p>Using this example in my code, I click on a textView that is NOT empty and sometimes it comes back with "textview is empty." It seems like it tends to happen most often immediately after re-running the simulator and clicking on any textView, but I've also seen it happen when just clicking on a textView for the first time (after having clicked on some other textView) or when I segue back to my UIView containing the textViews from some other view. </p>
  
  <p>Does anyone know why this happens?</p>