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); }
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(); }