public static IObservable <int> CursorPosition(this UITextView textView) => Observable.Create <int>(observer => { var selectedTextRangeDisposable = textView.AddObserver( selectedTextRangeChangedKey, NSKeyValueObservingOptions.OldNew, _ => observer.OnNext((int)textView.SelectedRange.Location) ); return(selectedTextRangeDisposable); }) .StartWith((int)textView.SelectedRange.Location);