コード例 #1
0
        protected override void Dispose(bool disposing)
        {
            if (_disposed)
            {
                return;
            }

            _disposed = true;

            if (disposing)
            {
                if (Control != null)
                {
                    TextView.Changed          -= HandleChanged;
                    TextView.Started          -= OnStarted;
                    TextView.Ended            -= OnEnded;
                    TextView.ShouldChangeText -= ShouldChangeText;
                    if (Control is IFormsUITextView formsUITextView)
                    {
                        formsUITextView.FrameChanged -= OnFrameChanged;
                    }
                }
            }

            _pleaseDontCollectMeGarbageCollector = null;
            base.Dispose(disposing);
        }
コード例 #2
0
        protected override void OnElementChanged(ElementChangedEventArgs <Editor> e)
        {
            base.OnElementChanged(e);

            if (e.NewElement == null)
            {
                return;
            }

            if (Control == null)
            {
                SetNativeControl(CreateNativeControl());

                if (DeviceInfo.Idiom == DeviceIdiom.Phone)
                {
                    // iPhone does not have a dismiss keyboard button
                    var keyboardWidth = UIScreen.MainScreen.Bounds.Width;
                    var accessoryView = new UIToolbar(new CGRect(0, 0, keyboardWidth, 44))
                    {
                        BarStyle = UIBarStyle.Default, Translucent = true
                    };

                    var spacer     = new UIBarButtonItem(UIBarButtonSystemItem.FlexibleSpace);
                    var doneButton = new UIBarButtonItem(UIBarButtonSystemItem.Done, (o, a) =>
                    {
                        TextView.ResignFirstResponder();
                        ElementController.SendCompleted();
                    });
                    accessoryView.SetItems(new[] { spacer, doneButton }, false);
                    TextView.InputAccessoryView = accessoryView;
                }

                TextView.Changed                    += HandleChanged;
                TextView.Started                    += OnStarted;
                TextView.Ended                      += OnEnded;
                TextView.ShouldChangeText           += ShouldChangeText;
                _pleaseDontCollectMeGarbageCollector = TextView.Delegate;
            }

            UpdateFont();
            UpdatePlaceholderText();
            UpdatePlaceholderColor();
            UpdateTextColor();
            UpdateText();
            UpdateCharacterSpacing();
            UpdateKeyboard();
            UpdateEditable();
            UpdateTextAlignment();
            UpdateMaxLength();
            UpdateAutoSizeOption();
            UpdateReadOnly();
            UpdateUserInteraction();
        }