Example #1
0
        public void CloseModal()
        {
            if (closing || topModal == null)
            {
                return;
            }
            closing = true;
            NavigationItem.LeftBarButtonItem = null;

            var tb = new UITextField(new RectangleF(0, -40, 40, 40));

            if (topModal is UIViewController)
            {
                var vcv = (topModal as UIViewController).View;
                vcv.AddSubview(tb);
                tb.BecomeFirstResponder();
                tb.ResignFirstResponder();
                this.NavigationController.PopViewControllerAnimated(false);
                MainView.AddSubview(vcv);
                topModal = vcv;
            }
            var modal = topModal as UIView;

            modal.AddSubview(tb);
            tb.BecomeFirstResponder();
            tb.ResignFirstResponder();
            UIView.BeginAnimations("closeModel");
            UIView.SetAnimationDuration(AnimationSpeed);
            UIView.SetAnimationCurve(UIViewAnimationCurve.EaseIn);
            UIView.SetAnimationDelegate(this);
            UIView.SetAnimationDidStopSelector(new Selector("fadeOutDidFinish"));
            modal.Transform = CGAffineTransform.MakeScale(0.2f, 0.2f);
            modal.Alpha     = 0.5f;
            UIView.CommitAnimations();
        }
        private bool ShouldReturn(UITextField textField)
        {
            if (textField.ReturnKeyType == UIReturnKeyType.Done)
            {
                // we are done, hide the keyboard
                View.EndEditing(true);

                // nothing else to edit, why not just saving the form?
                Save();

                return(false);
            }

            var         nextTag     = textField.Tag + 1;
            UIResponder nextControl = _contentView.ViewWithTag(nextTag);

            if (nextControl != null)
            {
                // set focus on the next control
                nextControl.BecomeFirstResponder();
            }
            else
            {
                // Not found, hide keyboard.
                View.EndEditing(true);
            }

            return(false);
        }
        public void ShouldChangeText_NullResponderAndOldText_ReturnsExpectedResult(UIResponder responder, string oldText)
        {
            var filter = new ForbiddenCharsFilter('%');

            var result = filter.ShouldChangeText(responder, oldText, new NSRange(1, 1), "new");

            Assert.True(result);
        }
Example #4
0
        //#pragma mark - Default special action.

        public void _dismissKeyboard(object sender)
        {
            UIResponder firstResponder = (UIResponder)this.keyInput;

            if (firstResponder != null)
            {
                firstResponder.ResignFirstResponder();
            }
        }
Example #5
0
        public void FadeOutDidFinish()
        {
            var modal = (UIView)topModal;

            modal.Transform = CGAffineTransform.MakeScale(1f, 1f);
            modal.RemoveFromSuperview();
            topModal = null;
            closing  = false;
        }
Example #6
0
        public static UIViewController FindUIViewController(this UIView view)
        {
            UIResponder responder = view;

            while (responder != null && !(responder is UIViewController))
            {
                responder = responder.NextResponder;
            }
            return((UIViewController)responder);
        }
Example #7
0
 UIViewController GetViewController()
 {
     UIResponder r = this;
     while (r != null) {
         var c = r as UIViewController;
         if (c != null)
             return c;
         r = r.NextResponder;
     }
     return null;
 }
 public virtual void OnReturnMoveTo(UITextField textField, UIResponder moveToField)
 {
     this.ExecuteMethod("OnReturnMoveTo", delegate()
     {
         if (this.ReturnMoveToFields == null)
         {
             this.ReturnMoveToFields = new Dictionary <UITextField, UIResponder>();
         }
         textField.ShouldReturn            += OnReturnMoveTo_ShouldReturn;
         this.ReturnMoveToFields[textField] = moveToField;
     });
 }
 public virtual void OnReturnMoveTo(UITextView textView, UIResponder moveToField)
 {
     this.ExecuteMethod("OnReturnMoveTo", delegate()
     {
         if (this.NewLineMoveToFields == null)
         {
             this.NewLineMoveToFields = new Dictionary <UITextView, UIResponder>();
         }
         textView.ShouldChangeText         += OnNewLineMoveTo_ShouldChangeText;
         this.NewLineMoveToFields[textView] = moveToField;
     });
 }
Example #10
0
 private UIViewController GetViewController(iPhoneOSGameView form)
 {
     for (UIResponder uiResponder = form; uiResponder != null; uiResponder = uiResponder.NextResponder)
     {
         UIViewController uiViewController = uiResponder as UIViewController;
         if (uiViewController != null)
         {
             return(uiViewController);
         }
     }
     return(null);
 }
 private static UIResponder FindViewControllerInternal(UIResponder responder)
 {
     if (responder is UIViewController)
     {
         return(responder);
     }
     if (responder is UIView)
     {
         return(FindViewController(responder.NextResponder));
     }
     return(null);
 }
        protected virtual void ChangeSelectedRange(UIResponder responder, nint cursorPosition, string newText)
        {
            switch (responder)
            {
            case UITextField textField:
                ChangeSelectedRange(textField, cursorPosition, newText);
                break;

            case UITextView textView:
                ChangeSelectedRange(textView, cursorPosition, newText);
                break;
            }
        }
Example #13
0
        UIViewController GetParentViewController()
        {
            UIResponder responder = this.Container;

            while ((responder = responder.NextResponder) != null)
            {
                if (responder is UIViewController)
                {
                    return((UIViewController)responder);
                }
            }
            return(null);
        }
        public UIViewController FindParentViewController()
        {
            UIResponder parentResponder = this;

            while (parentResponder != null)
            {
                if (parentResponder is UIViewController)
                {
                    return((UIViewController)parentResponder);
                }
                parentResponder = parentResponder.NextResponder;
            }
            return(null);
        }
Example #15
0
        private UIViewController GetViewController()
        {
            UIResponder r = this;

            while (r != null)
            {
                var c = r as UIViewController;
                if (c != null)
                {
                    return(c);
                }
                r = r.NextResponder;
            }
            return(null);
        }
        protected bool TextFieldShouldReturn(UITextField textField)
        {
            var         nextTag       = textField.Tag + 1;
            UIResponder nextResponder = this.View.ViewWithTag(nextTag);

            if (nextResponder != null)
            {
                nextResponder.BecomeFirstResponder();
            }
            else
            {
                textField.ResignFirstResponder();
            }
            return(false);
        }
        public static UIViewController GetViewController(this UIView view)
        {
            UIResponder responder = view;

            while (!(responder is UIViewController))
            {
                responder = responder.NextResponder;
                if (responder == null)
                {
                    break;
                }
            }

            return((UIViewController)responder);
        }
        /// <summary>
        /// Selects next TextField to become FirstResponder.
        /// Usage: textField.ShouldReturn += TextFieldShouldReturn;
        /// </summary>
        /// <returns></returns>
        /// <param name="textField">The TextField</param>
        public bool TextFieldShouldReturn(UITextField textField)
        {
            var         nextTag       = textField.Tag + 1;
            UIResponder nextResponder = this.View.ViewWithTag(nextTag);

            if (nextResponder != null)
            {
                nextResponder.BecomeFirstResponder();
            }
            else
            {
                // Not found, so remove keyboard.
                textField.ResignFirstResponder();
            }
            return(false);            // We do not want UITextField to insert line-breaks.
        }
        private static UIView CreateToolbar(CGRect frame, string buttonTitle, UIResponder next, Action onEnter)
        {
            var toolbar = new UIToolbar(new CGRect(0, 0, frame.Size.Width, 50));
            var button  = new UIBarButtonItem(buttonTitle, UIBarButtonItemStyle.Plain, (_, _) =>
            {
                next?.BecomeFirstResponder();
                onEnter?.Invoke();
            });

            toolbar.Items = new[]
            {
                new UIBarButtonItem(UIBarButtonSystemItem.FlexibleSpace), button
            };
            toolbar.SizeToFit();
            return(toolbar);
        }
Example #20
0
        /*
         * Handler for moving through TextFields and hiding the keyboard
         * */
        private bool TextFieldShouldReturn(UITextField textField)
        {
            nint        nextTag       = textField.Tag + 1;
            UIResponder nextResponder = this.View.ViewWithTag(nextTag);

            if (nextResponder != null)
            {
                nextResponder.BecomeFirstResponder();
            }
            else
            {
                // Not found, so remove keyboard.
                textField.ResignFirstResponder();
            }
            return(false);
        }
Example #21
0
        private bool TextFieldShouldReturn(UITextField textfield)
        {
            int         nextTag       = (int)textfield.Tag + 1;
            UIResponder nextResponder = this.View.ViewWithTag(nextTag);

            if (nextResponder != null)
            {
                nextResponder.BecomeFirstResponder();
                AutoCompleteTextFieldManager.RemoveTable();
            }
            else
            {
                // Not found, so remove keyboard.
                textfield.ResignFirstResponder();
            }

            return(false);            // We do not want UITextField to insert line-breaks.
        }
        /// <summary>
        /// Implements the behaviour of the return button
        /// </summary>
        /// <returns>Always <c>false</c>, because we do not want a line break</returns>
        /// <param name="textfield">Textfield.</param>
        bool TextFieldShouldReturn(UITextField textfield)
        {
            int         nextTag       = (int)textfield.Tag + 1;
            UIResponder nextResponder = View.ViewWithTag(nextTag);

            if (nextResponder != null)
            {
                nextResponder.BecomeFirstResponder();
            }
            else
            {
                // Remove keyboard, then connect
                textfield.ResignFirstResponder();
                if (ShouldPerformSegue(strings.serverConnectToDevicesSegue, this))
                {
                    PerformSegue(strings.serverConnectToDevicesSegue, this);
                }
            }
            return(false);
        }
Example #23
0
        public void LaunchModal(UIResponder responder)
        {
            if (closing || Adding)
            {
                return;
            }
            Adding   = true;
            topModal = responder;
            if (responder is UIView)
            {
                var modal = responder as UIView;
                modal.Frame = MainView.Frame;

                AddViewToScreen(modal);
            }
            else if (responder is UIViewController)
            {
                AddViewControllerToScreen();
            }
        }
Example #24
0
        private bool textFieldShouldReturn(UITextField txt)
        {
            if (txt.Tag <= 0)
            {
                txt.ResignFirstResponder();
                return(false);
            }

            nint        nextTag       = txt.Tag + 1;
            UIResponder nextResponder = controller.View.ViewWithTag(nextTag);

            if (nextResponder != null)
            {
                nextResponder.BecomeFirstResponder();
            }
            else
            {
                txt.ResignFirstResponder();
            }

            return(false);
        }
Example #25
0
        private static bool IsBubbleEventHandler(UIResponder responder, string eventType, out MethodInfo handler)
        {
            handler = null;

            Type type = responder.GetType();
            MethodInfo[] methods = type.GetMethods(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic);

            foreach (var m in methods)
            {
                BubbleEventHandlerAttribute attr = m.GetCustomAttribute<BubbleEventHandlerAttribute>();

                if (attr == null)
                    continue;

                if (attr.EventType == eventType) {
                    handler = m;
                    return true;
                }
            }

            return false;
        }
Example #26
0
        private bool OpenURL(NSUrl url)
        {
            UIResponder responder = this as UIResponder;

            while (responder != null)
            {
                var application = responder as UIApplication;

                if (application != null)
                {
                    var _url = url;

                    application.PerformSelector(new ObjCRuntime.Selector("openURL:"), _url, 0);

                    return(true);
                }

                responder = responder.NextResponder;
            }

            return(false);
        }
        /// <inheritdoc cref="ITextFilter" />
        public virtual bool ShouldChangeText(UIResponder responder, string?oldText, NSRange range, string inputText)
        {
            var newText = oldText ?? string.Empty;

            newText = newText
                      .Remove((int)range.Location, (int)range.Length)
                      .Insert((int)range.Location, inputText);

            if (newText.Length <= _maxLength)
            {
                return(true);
            }

            if (IsCharacterOverwritingEnabled)
            {
                newText = newText.Substring(0, _maxLength);
                var cursorPosition = (nint)Math.Min(range.Location + inputText.Length, newText.Length);

                ChangeSelectedRange(responder, cursorPosition, newText);
            }

            return(false);
        }
Example #28
0
        private void loadOnThread()
        {
            using (new NSAutoreleasePool())
            {
                if (ShowLoadingMessage)
                {
                    //loading = new MBProgressHUD(Util);
                    //loading.Show(true);
                }
                // UIKit Consistency error: you are calling a UIKit method that can only be invoked from the UI thread.
                //modalview = ModalView == null ? null : ModalView();
                if (ModalView == null)
                {
                    modalview = null;
                }
                else
                {
                    InvokeOnMainThread(() => { modalview = ModalView(); });
                }

                InvokeOnMainThread(delegate { loadComplete(); });
            }
        }
Example #29
0
 public void FadeOutDidFinish()
 {
     var	modal = (UIView)topModal;
     modal.Transform = CGAffineTransform.MakeScale (1f, 1f);
     modal.RemoveFromSuperview ();
     topModal = null;
     closing = false;
 }
 public override bool ForceTextInputbarAdjustmentForResponder(UIResponder responder)
 {
     // On iOS 9, returning YES helps keeping the input view visible when the keyboard if
     // presented from another app when using multi-tasking on iPad.
     return(UIDevice.CurrentDevice.UserInterfaceIdiom == UIUserInterfaceIdiom.Pad);
 }
 public static UIViewController FindViewController(this UIResponder responder)
 {
     return((UIViewController)FindViewControllerInternal(responder));
 }
Example #32
0
        private void loadOnThread()
        {
            using(new NSAutoreleasePool())
            {
                if(ShowLoadingMessage)
                {
                    //loading = new MBProgressHUD(Util);
                    //loading.Show(true);
                }
                // UIKit Consistency error: you are calling a UIKit method that can only be invoked from the UI thread.
                //modalview = ModalView == null ? null : ModalView();
                if (ModalView == null)
                    modalview = null;
                else
                    InvokeOnMainThread(() => {modalview = ModalView();});

                InvokeOnMainThread(delegate {loadComplete();});
            }
        }
 public static UITextField AddToolbar(this UITextField input, string buttonTitle, UIResponder next = null, Action onEnter = null)
 {
     input.InputAccessoryView = CreateToolbar(input.Frame, buttonTitle, next, onEnter);
     return(input);
 }
Example #34
0
		public override bool ForceTextInputbarAdjustmentForResponder (UIResponder responder)
		{
			// On iOS 9, returning YES helps keeping the input view visible when the keyboard if 
			// presented from another app when using multi-tasking on iPad.
			return UIDevice.CurrentDevice.UserInterfaceIdiom == UIUserInterfaceIdiom.Pad;
		}
Example #35
0
        public void LaunchModal(UIResponder responder)
        {
            if(closing || Adding)
                return;
            Adding = true;
            topModal = responder;
            if (responder is UIView)
            {
                var modal = responder as UIView;
                modal.Frame = MainView.Frame;

                AddViewToScreen (modal);
            }
            else if (responder is UIViewController)
            {
                AddViewControllerToScreen ();
            }
        }
Example #36
0
        public void CloseModal()
        {
            if(closing || topModal == null)
                return;
            closing = true;
            NavigationItem.LeftBarButtonItem = null;

            var tb = new UITextField(new RectangleF(0,-40,40,40));
            if (topModal is UIViewController)
            {
                var vcv = (topModal as UIViewController).View;
                vcv.AddSubview(tb);
                tb.BecomeFirstResponder();
                tb.ResignFirstResponder();
                this.NavigationController.PopViewControllerAnimated (false);
                MainView.AddSubview (vcv);
                topModal = vcv;

            }
            var modal = topModal as UIView;

            modal.AddSubview(tb);
            tb.BecomeFirstResponder();
            tb.ResignFirstResponder();
            UIView.BeginAnimations ("closeModel");
            UIView.SetAnimationDuration (AnimationSpeed);
            UIView.SetAnimationCurve(UIViewAnimationCurve.EaseIn);
            UIView.SetAnimationDelegate (this);
            UIView.SetAnimationDidStopSelector (new Selector ("fadeOutDidFinish"));
            modal.Transform = CGAffineTransform.MakeScale (0.2f, 0.2f);
            modal.Alpha = 0.5f;
            UIView.CommitAnimations ();
        }