Beispiel #1
0
        partial void OnFocusStateChangedPartial(FocusState focusState)
        {
            if (_textBoxView == null)
            {
                return;
            }

            if (focusState == FocusState.Unfocused)
            {
                if (_textBoxView.IsFocused)
                {
                    _textBoxView.ClearFocus();
                }
            }
            else
            {
                if (!_textBoxView.IsFocused)
                {
                    using (focusState == FocusState.Programmatic ? PreventKeyboardDisplayIfSet() : null)
                    {
                        _textBoxView.RequestFocus();

                        var selectionStart = this.SelectionStart;

                        if (selectionStart == 0)
                        {
                            int cursorPosition = selectionStart + _textBoxView?.Text?.Length ?? 0;

                            this.Select(cursorPosition, 0);
                        }
                    }
                }
            }
        }
Beispiel #2
0
        partial void OnFocusStateChangedPartial(FocusState focusState)
        {
            if (_textBoxView == null)
            {
                return;
            }

            if (focusState == FocusState.Unfocused)
            {
                if (_textBoxView.IsFocused)
                {
                    _textBoxView.ClearFocus();
                }
            }
            else
            {
                if (!_textBoxView.IsFocused)
                {
                    using (focusState == FocusState.Programmatic ? PreventKeyboardDisplayIfSet() : null)
                    {
                        _textBoxView.RequestFocus();
                    }
                }
            }
        }
Beispiel #3
0
 public override bool RequestFocus(FocusSearchDirection direction, Rect previouslyFocusedRect)
 {
     using (PreventKeyboardDisplayIfSet())
     {
         var wantsFocus = (_textBoxView?.RequestFocus(direction, previouslyFocusedRect))
                          .GetValueOrDefault(false);
         if (wantsFocus && FocusState == FocusState.Unfocused)
         {
             Focus(FocusState.Programmatic);
         }
         return(wantsFocus);
     }
 }